Ответ 1
SELECT
COUNT(*) as num
FROM
users
WHERE
user_id = '$user_id' AND
average IS NULL
Я хочу знать, как я могу найти все значения, которые являются NULL в базе данных MySQL, например, я пытаюсь отобразить всех пользователей, у которых пока нет среднего.
Вот код MySQL.
SELECT COUNT(average) as num
FROM users
WHERE user_id = '$user_id'
AND average IS_NULL
SELECT
COUNT(*) 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
Это не лучше, чем конкретные запросы, представленные другими ответами здесь, но их можно использовать в ситуациях, когда использование ограничения, где предложение является нецелесообразным (из-за необходимости другой информации)...
Кроме того, вы можете:
Select Count(*) - Count(Average) as NullAverages
From Users
Where user_id = '$user_id'
ты на правильном пути. Удалите "_" из "IS_NULL" и измените "COUNT (среднее значение)" на "COUNT (1)", и вы получите его.
Для получения дополнительной информации о работе с NULL в MYSQL см. 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
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
С уважением.