SQL記述難易度 標準

この SQL はエラーになる。1 行で正しく直して書いてください。

SELECT idFROM postsWHERE title = 'Don't panic'ORDER BY id;

正答

正答SELECT id FROM posts WHERE title = 'Don''t panic' ORDER BY id;

解説

シングルクォートで囲んだ文字列の中にシングルクォートを含めるには、'Don''t panic' のように 2 つ重ねて書く。'Don't panic' では Don の後ろで文字列が閉じ、残りの t panic' が構文として解釈できずエラーになる。'Don\'t panic' とバックスラッシュでエスケープする直し方は誤りで、標準 SQL や SQLite では使えない。アプリから値を渡すときはプレースホルダを使えば、この問題自体が起きない。

参考: www.sqlite.org

quotestring-literal

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ