我有一个MySQL查询,它返回一条错误消息。我想这可能是因为" out"。通常情况下,我只会更改字段名称,但我正在处理一些我不习惯的软件,而且我不知道会有多少变化。所以,我想确定是否必须这样做。
以下是查询:
SELECT * FROM probid_bids WHERE auctionid=73 AND out=0 AND invalid=0
这里出现错误信息:
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便使用接近' out = 0 AND invalid = 0'的正确语法。在第1行
答案 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)
OUT
是reserved word(用于指定参数的类型 - 创建procedures时的IN,OUT,INOUT)。尝试将其封闭在反引号(`
)中。
关于如何以及何时引用标识符(表名,列名等)的规则是described here。
注意:某些MySQL配置允许您使用双引号但应避免这种情况;坚持使用反引号来引用标识符和单引号来引用字符串。