【发布时间】:2021-07-27 21:01:52
【问题描述】:
我想了解or null 在此示例中的工作原理:
Select columnA, count(columnB = 'foobar' or null) as result
from orders
group by columnA
如果我不使用or null,那么它只会根据group by 给出columnB 的计数(*),但使用or null 它会给出正确的值计数,其中columnB = 'foobar'
只是想知道它在内部是如何工作的?
【问题讨论】:
-
它为匹配 foobar 的行返回 1,为不匹配的行返回 null(而不是 0)。 COUNT() 不计算空值(但它确实计数为 0),因此它相当于
SUM(columnB = 'foobar')[或SUM(CASE WHEN columnB = 'foobar' THEN 1 ELSE 0 END)]
标签: mysql count boolean-logic sql-null