(实用技能)mysql三目运算实现if,else的效果,避免不必要的查询

mysql的if函数

例如:IF(expr1,expr2,expr3) 
说明:如果 expr1是TRUE,则IF()的返回值为expr2; 否则返回值则为expr3
实例场景:如果video_id为null,则直接返回空字符,避免不必要的查询影响效率:
(SELECT if(isnull(video_id),'为空返回','不为空')) result,

注意:括号很有必要,别漏了
.
.
已结束,如下是额外问题及技能

技能一:子查询有count函数,查出来的结果变成了blob类型的
 

SELECT 
    IF(ISNULL(#{create_user}), '0',
        (SELECT 
                COUNT(1)
            FROM
                product_album_extends
            WHERE
                create_user = #{create_user}))


解决办法mysql BLOB字段转String的方法将count(1)替换为CONVERT( COUNT(1) USING UTF8) 搞定

资料一

资料二

实用函数二:mysql通过标题检索关键词

mysql中INSTR函数的用法

INSTR(字段名, 字符串)

这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始)

技能三:数据存在则更新,没有则插入(on DUPLICATE key update)

sql语法(在原有insert语句后,追加):

INSERT INTO `pers_member`
(`member_no`, `phone` `member_status``update_time`) 
VALUES
(111, '15510172665', 13, '2023-06-01 00:43:40')
on DUPLICATE key update `update_time` = now(),member_status=10;

原文姿势充电

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多来哈米

还可以打赏???来试一毛

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值