我很惊讶地看到我的一个学生写作
select count(title='Staff') from titles
针对 MySQL 员工数据库。这是否意味着成为一个不错的捷径
select sum(case when title='Staff' then 1 else 0 end) from titles
哪个在 MySQL 5.6 中无法工作(返回全表计数)?
我很惊讶地看到我的一个学生写作
select count(title='Staff') from titles
针对 MySQL 员工数据库。这是否意味着成为一个不错的捷径
select sum(case when title='Staff' then 1 else 0 end) from titles
哪个在 MySQL 5.6 中无法工作(返回全表计数)?
不,这count
不是sum
你写的简写。
COUNT(exp)
计算非 nullexp
的行数。
title='Staff'
是一个布尔表达式,它的计算结果是true
title 是否为“Staff”、false
是否为任何其他值或null
为 null。
所以,这个查询相当于
select count(title) from titles
反过来,这相当于
select count(*) from titles where title is not null
不!您不能对写入括号的条件进行计数。它简单地返回该表中的所有行。
select count(title='Staff') from titles
返回所有行titles