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;