削除されていない(deleted_at が NULL の)行を出したい。この SQL を正しく直して書いてください。
SELECT * FROM users WHERE deleted_at = NULL;正答
正答
SELECT * FROM users WHERE deleted_at IS NULL;解説
NULL は「値が分からない」を表すので、= で比べた結果も真でも偽でもない NULL になる。WHERE は結果が真の行だけを残すため、deleted_at = NULL は 1 行も返さない。構文エラーにはならないので気づきにくい。正しくは deleted_at IS NULL。= 'NULL' とクォートで囲む直し方は誤りで、4 文字の文字列 'NULL' と比べることになり、NULL の行は返らない。
参考: www.sqlite.org
この問題を含む 指摘・レビュー のテストを制限時間つきで解く
指摘・レビュークイズへ