0
点赞
收藏
分享

微信扫一扫

mysql if判断字符串比较

一、ifnull判断

select ifnull(param,1); #如果param为null则输出1,如果不为null,则输出param
当使用concat拼接时,如果有列值为null,结果从null到最后都是一个null填充,不会再显示后面的拼接内容
此时又想要保留null,
可以对列值进行判断
ifnull(param,null) #这时候即使列值是null,也会在输出结果显示,并且显示后面的拼接内容

二、if字符串判断

1、简单字符串相等判断
if(param='login',1,2)
#如果param的值为login,则输出1,否则输出2
if('login'='login' and 'ab'='ab',1,2) ==>输出1

2、使用STRCMP()进行字符串相等判断
比较函数里面的两个字符串,若所有的字符串均相同,则 STRCMP()返回 0,若第一个参数小于第二个,则返回-1,其它情况返回1
if(STRCMP(param,'ab') ,'yes','no')
#只有param=ab,才会判断为0,输出no,其他情况都输出yes

3、使用instr()字符串包含判断
instr()返回字串第一次出现的索引,没有返回0
if(instr('小白很菜','小白'),1,0) ==>输出1
if(instr('小白很菜','小白1'),1,0) ==>输出0

4、配合运算符判断
if(instr('abc','ab') or instr('123','45'),1,0) ==>输出1
if(instr('abc','ab') and instr('123','45'),1,0)==>输出0
if(instr('abc','ab') and not instr('123','45'),1,0)==>输出1

5、判断中加判断
if(instr('abc','bd'),1,0) ==>输出0,如果把0换成一个新的判断
if(instr('abc','bd'),1,if(instr('123','12'),4,5)) ==>输出4

举报

相关推荐

0 条评论