问题描述:编者在使用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";
