メールアドレスが未登録のユーザーを出したい。直したものは?
SELECT id FROM users WHERE email = NULL;正答
- SELECT id FROM users WHERE email IS NULL;
- SELECT id FROM users WHERE email == NULL;
- SELECT id FROM users WHERE email = 'NULL';
- SELECT id FROM users WHERE email IS NOT NULL;
解説
NULL は「値が無い」状態で、= や <> で比較すると結果は真にも偽にもならず、条件としては一致しない扱いになる。email = NULL は 1 行も返さない。NULL かどうかは IS NULL / IS NOT NULL で判定する。選択肢 2 の == も比較演算子なので同じく 0 件。選択肢 3 は文字列 'NULL' と比較しており、未登録とは無関係。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ