问题描述:编者在使用mysql中的
if(car_number,"监管车辆","非监管车辆")
函数时,场景为在一个car
表中如果能查到具体某辆车这辆车就是我司监管车辆
,差不到就不是我司监管车辆显示非监管车辆
,遇到匹配不到的数据,结果没有如期运行,不显示非监管车辆
,也不显示监管车辆
查询一个user
表账户为xxx
的用户
select * from user where username = "xxx";
如下图所示预期显示不存在,但是什么也没显示,很迷惑,这是笔者认为不存在就是None
或null
那就是False,应该显示不存在,实际上这是无匹配记录的情况,没有记录满足username = "xxx"
的结果
解决这个问题就是使用聚合函数
,让它返回一个结果,如使用count让它返回一个0,这条sql就可以按照预期运行了
显示了不存在
select if(COUNT(username),"存在","不存在") from user where username = "xxx";