只是想知道,MySQL 将如何处理这个查询,如果 sum(credits) != NULL,sum() 会计算两次吗?或者 MySQL 是否对此类查询进行了优化。
select if(sum(credits)=NULL, 0, sum(credits)) from ......
谢谢
最佳答案
如果不行的话。第一个条件始终为假。与 NULL
进行比较的正确方法是 IS NULL
,而不是 =
。
只需使用这个结构:
select coalesce(sum(credits), 0)
关于MySQL——if条件优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875463/