mysql ifnull语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql ifnull语句相关的知识,希望对你有一定的参考价值。

SELECT a.*, c.order_number from `table_a` as a left join (select partner_id, IFNULL(count(order_id),0) as order_number from `table_c` group by partner_id) as c on c.partner_id=a.partner_id

为什么得到的结果中 order_number 是null,而不是我想要的0
表c 是空的,只有结构,没有数值

参考技术A left join没有关联到的都会置成NULL, 跟你ifnull没有关系

写在最外层才有效果,像这样
SELECT a.*, ifnull(c.order_number,0) from `table_a` as a left join (select partner_id, IFNULL(count(order_id),0) as order_number from `table_c` group by partner_id) as c on c.partner_id=a.partner_id本回答被提问者和网友采纳
参考技术B 首先,
你的语句中,完全没有必要使用ifnull(),
因为count()函数不会返回null值,只会返回>=0的整数。
其次,
结果中出现null的原因,并不是应为c.order_number的值,而是:
left join的时候,如果在右表中找不到对应的内容,就会显示null,
正是因为你的表c是空的,所以...
希望你能明白!

以上是关于mysql ifnull语句的主要内容,如果未能解决你的问题,请参考以下文章

如何用MYSQL的IFNULL()编写一句完整的话?

MySQL 在 WHERE 语句中使用 COALESCE 或 IFNULL 选择非 NULL 值

mysql ifnull() 返回的仍然为空值null,怎么办?

mysql ifnull 函数 使用和 if 三目运算

MySQL IFNULL()函数用法MySQL

MySQL的IFNULL简单使用说明