たとえば、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'
あなたは正しい方向に進んでいます。'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サーバーで機能します
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
よろしく。