我很惊讶地看到我的一个学生写作
select count(title='Staff') from titles
针对MySQL员工数据库。这是否是
的一个很好的捷径select sum(case when title='Staff' then 1 else 0 end) from titles
它在MySQL 5.6中无效(返回完整的表计数)?
答案 0 :(得分:4)
不,这个count
不是您撰写的sum
的简写。
COUNT(exp)
计算非空exp
的行数。
title='Staff'
是一个布尔表达式,如果title为'Staff',则计算结果为true
;如果是其他任何值,则计算为false
;如果为null,则为null
。
因此,此查询等同于
select count(title) from titles
反过来相当于
select count(*) from titles where title is not null
答案 1 :(得分:1)
否! 你不能把条件写入括号中。它简单地返回该表中的所有行。
select count(title='Staff') from titles
从titles