3

我很惊讶地看到我的一个学生写作

select count(title='Staff') from titles

针对 MySQL 员工数据库。这是否意味着成为一个不错的捷径

select sum(case when title='Staff' then 1 else 0 end) from titles

哪个在 MySQL 5.6 中无法工作(返回全表计数)?

4

2 回答 2

4

不,这count不是sum你写的简写。

COUNT(exp)计算非 nullexp的行数。 title='Staff'是一个布尔表达式,它的计算结果是truetitle 是否为“Staff”、false是否为任何其他值或null为 null。

所以,这个查询相当于

select count(title) from titles

反过来,这相当于

select count(*) from titles where title is not null
于 2013-10-17T20:40:19.660 回答
1

!您不能对写入括号的条件进行计数。它简单地返回该表中的所有行。

select count(title='Staff') from titles 返回所有行titles

于 2013-10-17T20:39:23.403 回答