我不能使用'time‘字作为我在mysql查询中的列名。
这是我的查询代码:(不工作)
UPDATE ip_p SET deger = '-1' TIME = '123' WHERE ip = '12' AND premium = '1'错误是:
#1064 -您的SQL语法有错误;请检查与MySQL服务器版本相对应的手册,以便在第1行使用接近“time=‘123’的正确语法,其中ip = '12‘和premium =’1‘。
但是这个代码是有效的:
UPDATE ip_p SET deger = '-1' WHERE ip = '12' AND premium = '1'我要改我的列名吗?
发布于 2012-01-22 23:31:41
1)你在deger = '-1'之后失去了昏迷
2)你可以把时间限制在后面(‘),以防止其他可能的错误。
对吗(试一下?)查询拼写:
UPDATE ip_p SET deger = '-1', `TIME` = '123' WHERE ip = '12' AND premium = '1'更新
对评论的答复:
将deger列减少1的正确查询如下:
UPDATE ip_p SET deger = deger-1, `TIME` = '123' WHERE ip = '12' AND premium = '1'如果您只需要将其设置为-1,则执行:
UPDATE ip_p SET deger = -1, `TIME` = '123' WHERE ip = '12' AND premium = '1'还请注意,单引号(')的语法应该仅用于字符串(varachar(.)列等);用于不正确的数字。如果您需要指定数字-只需做它没有任何引号。我对deger列进行了更改(显然,如果要从中减去某项内容,它是数字的),但对于其他列则没有更改,因为我不知道它们的类型。如果列TIME、ip和premium也是数字,那么还需要从它们的值中删除引号。
发布于 2012-01-22 23:31:28
您可以通过使用backticks来转义关键字"time“:
UPDATE ip_p SET deger = '-1', `TIME` = '123' WHERE ip = '12' AND premium = '1'我相信你也掉了一个逗号,这可能是你在这里出错的原因。但是通常情况下,如果您有一个对MySQL特殊的列名,请转义它。
发布于 2012-01-22 23:31:33
可以,但必须将名称括在backticks `中。作为一般规则,我总是把列名附在其中,因为它清楚地说明了列名是什么。
https://stackoverflow.com/questions/8965687
复制相似问题