我们一般会对查不出来的数据,不想某个字段为null,想给他自己定义一个值
可以看到user_roles表中不存在id = 10000000000000的数据,
如果直接使用IFNULL则不会出现预期的效果
因为这里IFNULL()函数无法针对不存在结果的结果集进行判断,所以我们想办法让其返回结果集不为空。
可以为结果集连接一个不为空的默认结果集,
SELECT IFNULL(t1.rolename,"--") as rolename
FROM
(SELECT rolename FROM user_roles ur
WHERE ur.id = 10000000000000) t1
RIGHT JOIN (SELECT 0) t2 ON 1=1
这里将没有结果的结果集作为一个表,去跟一个不为空的结果集右连接,就行了