1

エラーメッセージを返すMySQLクエリがあります。「アウト」という言葉が原因かもしれないと思います。通常、フィールド名を変更するだけですが、慣れていないソフトウェアに取り組んでおり、どの程度の変更になるかわかりません。だから、私は私がしなければならないかどうかを確認したいと思います。

クエリは次のとおりです。

SELECT * FROM probid_bids WHERE auctionid=73 AND out=0 AND invalid=0

ここにエラーメッセージがあります:

SQL構文にエラーがあります。1行目の'out= 0 AND invalid = 0'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

3 に答える 3

4

OUT確かに予約語です。次のように、列名をバッククォートで囲んで名前を引用すると、この問題を回避できます。

SELECT * FROM probid_bids WHERE `auctionid`=73 AND `out`=0 AND `invalid`=0
于 2012-09-09T17:40:00.803 に答える
3

OUT予約語です(プロシージャを作成するときにパラメータのタイプ(IN、OUT、INOUT)を指定するために使用されます)。バックティック()で囲んでみてください`

識別子(テーブル名、列名など)を引用する方法とタイミングに関する規則は、ここで説明されています

注:特定のMySQL構成では、二重引用符も使用できますが、これは避ける必要があります。識別子を引用するためにバッククォートを使用し、文字列を引用するために一重引用符を使用することに固執します。

于 2012-09-09T17:39:51.507 に答える
2

キーをエスケープします。

SELECT * FROM `probid_bids` WHERE `auctionid`=73 AND `out`=0 AND `invalid`=0
于 2012-09-09T17:39:45.987 に答える