こんにちは。mySQL初心者です。
例えば、「sample」というDBに以下の3つのフィールドのあるテーブル「text」があるとします。
(実際には、DATETIME型のフィールドも含めて20列あります)
key => 整数型で、プライマリキー&オートインクリメントを設定
status => テキスト型(UTF-8)
note => テキスト型(UTF-8)
ここで、「SELECT * FROM text WHERE key=1」というSQLで1つ目のレコードを取得しようとすると、「#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key=1 LIMIT 0, 30' at line 1」というエラーが出てしまいます。
「SELECT * FROM text WHERE status='sample_01'」や「SELECT * FROM text WHERE note='test entry'」というSQL文ならちゃんとデータを取得できるのですが、「WHERE key=1」のようにプライマリキーで検索しようとするとエラーになるのは何故でしょうか。
どなたか見当が付くかたがいらっしゃいましたら、教えていただけないでしょうか。
よろしくお願いします。
<環境>
XAMPP Ver.1.7.4で、mySQLは Ver. 5.5.8です。
お礼
早速のご回答ありがとうございます。 非常に初心者らしい(自分で言うのもなんですが)間違いをしてしまいました。 おっしゃるとおり、フィールド名に予約語を使っていたことが原因でした。 バックウォート(初めて使いました)で括ったら正常に機能しましたが、今後のためにもテーブルを作り直そうかと思います。