mysql if函数如何处理无匹配记录的情况?使用聚合函数

时间:2024-11-10 15:32:54

问题描述:编者在使用mysql中的if(car_number,"监管车辆","非监管车辆")函数时,场景为在一个car表中如果能查到具体某辆车这辆车就是我司监管车辆,差不到就不是我司监管车辆显示非监管车辆,遇到匹配不到的数据,结果没有如期运行,不显示非监管车辆,也不显示监管车辆

查询一个user表账户为xxx的用户

select * from user where username = "xxx";

如下图所示预期显示不存在,但是什么也没显示,很迷惑,这是笔者认为不存在就是Nonenull那就是False,应该显示不存在,实际上这是无匹配记录的情况,没有记录满足username = "xxx"的结果
在这里插入图片描述
解决这个问题就是使用聚合函数,让它返回一个结果,如使用count让它返回一个0,这条sql就可以按照预期运行了
显示了不存在

select if(COUNT(username),"存在","不存在") from user where username = "xxx";

在这里插入图片描述