(MySQL, SQLite)テーブル名、フィールド名をクオートで囲みたい場合
大抵はクオートで囲まなくても問題ありません。
※ データ値はシングルクオートで囲む必要があります。
ずっとこの書き方を続けていましたが、うっかりSQLの予約語である"explain"をフィールド名に使ってしまったせいで、エラーに悩まされることになってしまいました。
SELECT * FROM table WHERE field = 'データ値'
※ エラーになる
SELECT * FROM table WHERE explain = 'データ値'
で、クオートで囲む必要に迫られたわけです。
MySQLとSQLiteでは、使うクオート記号が違います。
MySQL
バッククオート(`)を使います。
SELECT * FROM `table` WHERE `explain` = 'データ値'
SQLite
ダブルクオート(")を使います。
SELECT * FROM "table" WHERE "explain" = 'データ値'
私が持ってるMySQLとSQLiteの参考書をざっと読み返してみたところ、上のような作法には触れられていませんでした。
例文ではテーブル名、フィールド名はクオートで囲まずに裸で記述していました。
おかげで解決までに結構な時間を要しました (-_-;)