MySQL查询出错(禁止Word?)

时间:2012-09-09 17:37:07

标签: mysql

我有一个MySQL查询,它返回一条错误消息。我想这可能是因为" out"。通常情况下,我只会更改字段名称,但我正在处理一些我不习惯的软件,而且我不知道会有多少变化。所以,我想确定是否必须这样做。

以下是查询:

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

这里出现错误信息:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便使用接近' out = 0 AND invalid = 0'的正确语法。在第1行

3 个答案:

答案 0 :(得分:4)

OUT确实是reserved word。您可以在反引号中包含列名以引用名称,从而避免此问题,如下所示:

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

答案 1 :(得分:2)

逃离钥匙:

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

答案 2 :(得分:2)

OUTreserved word(用于指定参数的类型 - 创建procedures时的IN,OUT,INOUT)。尝试将其封闭在反引号(`)中。

关于如何以及何时引用标识符(表名,列名等)的规则是described here

注意:某些MySQL配置允许您使用双引号但应避免这种情况;坚持使用反引号来引用标识符和单引号来引用字符串。