mysql ifnull 函数的使用方法

我有一个t_type表.里面有一个val列.现在想按type类型查询.如果没有记录的话,返回0.下面是我自己写的sql,但是返回的结果还是null怎么不是0呢?selec... 我有一个t_type表.里面有一个val列.现在想按type类型查询.如果没有记录的话,返回0.下面是我自己写的sql,但是返回的结果还是null怎么不是0呢?
select IFNULL(val,0) AS num from t_type where type = '1';
我的这个表是一个空表.返回null是不是因为我的结果集是0条,所以才为null的?
展开
 我来答
abul阿宝
推荐于2017-11-22 · TA获得超过260个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:176万
展开全部
你可以这样理解,mysql的执行顺序是from->where->select
经过where过滤之后才select来显示相应字段,如果where过滤完之后都没记录了,那select也就为null。(要想val为null就返回为0,除val字段外其余字段必须有一个不为null)
如果空表你也要返回0,可以在外面多嵌套一层
select ifnull(m.num,0) as num from (select IFNULL(val,0) AS num from t_type where type = '1')m
追问
SELECT IF(m.c>0,(SELECT val FROM t_type WHERE type = '1' AND is_delete = '0' ORDER BY val DESC LIMIT 0,1 ),0) AS n FROM (SELECT COUNT(*) AS c FROM t_type) as m;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式