指摘・レビュー記述難易度 基礎

名前が tanaka の行を出したい。この SQL を正しく直して書いてください。

SELECT * FROM users WHERE name = tanaka;

正答

正答SELECT * FROM users WHERE name = 'tanaka';

解説

SQL では、引用符で囲まない語は列名などの識別子として扱われる。tanaka という列は無いので「no such column: tanaka」のエラーになる。文字列の値は 'tanaka' のようにシングルクォートで囲む。"tanaka" とダブルクォートで囲む直し方は誤りで、ダブルクォートは識別子を囲む記号。SQLite は列が無いと文字列として扱う救済をするが、標準 SQL では通らない。= を LIKE に変えるのも論点がずれている。

参考: www.sqlite.org

sqlquoteliteral

この問題を含む 指摘・レビュー のテストを制限時間つきで解く

指摘・レビュークイズへ