一、ifnull判断
select ifnull(param,1); #如果param为null则输出1,如果不为null,则输出param
当使用concat拼接时,如果有列值为null,结果从null到最后都是一个null填充,不会再显示后面的拼接内容
此时又想要保留null,
可以对列值进行判断
ifnull(param,null) #这时候即使列值是null,也会在输出结果显示,并且显示后面的拼接内容
二、if字符串判断
1、简单字符串相等判断标签:输出,判断,instr,param,ab,mysql,字符串,null From: https://blog.51cto.com/u_13236892/5751254
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