abb*_*bbr 16 mysql aggregate-functions
我想知道如何在MySQL数据库中找到所有NULL值,例如我试图显示所有没有平均值的用户.
这是MySQL代码.
SELECT COUNT(average) as num
FROM users
WHERE user_id = '$user_id'
AND average IS_NULL
Run Code Online (Sandbox Code Playgroud)
irc*_*ell 33
更通用的版本(不依赖于where子句,因此限制了您的整体结果):
SELECT
SUM(CASE WHEN average IS NULL THEN 1 ELSE 0 END) As null_num,
SUM(CASE WHEN average IS NOT NULL THEN 1 ELSE 0 END) AS not_null_num
FROM users
Run Code Online (Sandbox Code Playgroud)
它并不比其他答案提供的特定查询更好,但它可以用于使用限制where子句不切实际的情况(由于需要其他信息)...
Ham*_*ite 14
SELECT
COUNT(*) as num
FROM
users
WHERE
user_id = '$user_id' AND
average IS NULL
Run Code Online (Sandbox Code Playgroud)
此外,您可以:
Select Count(*) - Count(Average) as NullAverages
From Users
Where user_id = '$user_id'
Run Code Online (Sandbox Code Playgroud)
小智 6
这是一个也可用于解决此问题的单衬:
SELECT COUNT(IF(average IS NULL,1,0))
FROM table;
Run Code Online (Sandbox Code Playgroud)
它对我来说就像一个魅力!
您走在正确的轨道上。从“ IS_NULL”中删除“ _”,并将“ COUNT(average)”更改为“ COUNT(1)”,您将拥有它。
有关在MYSQL中使用NULL的更多信息,请参见http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html
对于使用IS NULL的情况,请参见
http://dev.mysql.com/doc/refman/5.0/zh-CN/comparison-operators.html#operator_is-null
| 归档时间: |
|
| 查看次数: |
34274 次 |
| 最近记录: |