このSQLへの指摘として正しいものは?
SELECT * FROM users WHERE name = "tanaka";正答
- SQLite では = ではなく == を使わないと比較にならない
- 文字列はシングルクォートで囲む。"…" は列名などの識別子の記号
- WHERE の前にセミコロンが必要
- name は予約語なので列名に使えない
解説
標準 SQL ではダブルクォートは識別子(列名・テーブル名)を囲む記号で、文字列はシングルクォート。SQLite は互換のため、該当する列が無いと "tanaka" を文字列とみなすが、tanaka という列があればその列との比較になり結果が変わる。SQLite では = と == はどちらも等価比較なので 1 番目の指摘は誤り。
参考: www.sqlite.org
この問題を含む 指摘・レビュー のテストを制限時間つきで解く
指摘・レビュークイズへ