2012-04-20 4 views
1

以下のクエリは私を寝かせています。シンプルなクエリですが、where節にエラーがあります。なぜこのMysqlクエリは機能しません

私は受注テーブルから遅れて注文を取得しようとしています。

SELECT * FROM orders where delayed='Y' 

ここで何が間違っていますか?あなたがバッククォートであなたの「遅れ」の列をラップする必要がありますので、

答えて

6

DELAYEDは、mysqlではreserved wordです。バッククォートオプションは動作しますが

SELECT * FROM orders where `delayed`='Y' 
2

DELAYEDは、(INSERT DELAYEDのように)MySQLのキーワードである:

SELECT * FROM orders where `delayed`='Y' 

注ものはバッククォートではなく、アポストロフィあること。

1

はこれを試してみてください:列名として

を、それを使用しながら、以下試してみてください( `)バッククォートで囲みます空白の場合、テーブル名の使用を避けるのが私の謙虚な意見です。が可能な場合は可能です。バックチックそのものではなく、彼らは全く無害ですが、大会のためです。予約語は識別子として使用されるものではありません。予約語は予約されているからです!

乾杯!

1

、とも付きフィールド名のために働く:

SELECT * FROM orders WHERE `delayed`='Y' 
関連する問題