我想知道如何在 MySQL 数据库中找到所有为 NULL 的值,例如我试图显示所有还没有平均值的用户。
这是 MySQL 代码。
SELECT COUNT(average) as num
FROM users
WHERE user_id = '$user_id'
AND average IS_NULL
我想知道如何在 MySQL 数据库中找到所有为 NULL 的值,例如我试图显示所有还没有平均值的用户。
这是 MySQL 代码。
SELECT COUNT(average) as num
FROM users
WHERE user_id = '$user_id'
AND average IS_NULL
更通用的版本(不依赖于 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
它并不比此处其他答案提供的特定查询更好,但它可以用于使用限制 where 子句不切实际的情况(由于需要其他信息)...
SELECT
COUNT(*) as num
FROM
users
WHERE
user_id = '$user_id' AND
average IS NULL
此外,您还可以:
Select Count(*) - Count(Average) as NullAverages
From Users
Where user_id = '$user_id'
这是一个也可用于解决此问题的衬垫:
SELECT COUNT(IF(average IS NULL,1,0))
FROM table;
它对我来说就像一个魅力!
你在正确的轨道上。从“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/en/comparison-operators.html#operator_is-null
我可能会遗漏一些特定于 mysql 的内容,但这适用于 sql server
SELECT COUNT(*) as num
FROM users
WHERE user_id = '$user_id'
AND average IS NULL
有点晚了,但你可以在 MySQL 5.0.51 中做到:
SELECT COUNT(*) AS total, COUNT(field1) AS notNullFields1
FROM table
GROUP BY field5, field6
问候。