我不能在mysql查询中使用'time'字作为我的列名。
这是我的查询代码:(不工作)
UPDATE ip_p SET deger = '-1' TIME = '123' WHERE ip = '12' AND premium = '1'
错误是:
#1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 'time ='123'WHERI ip = '12'和premium ='1''在第1行
但是这段代码正在运作:
UPDATE ip_p SET deger = '-1' WHERE ip = '12' AND premium = '1'
我是否需要更改我的列名?
答案 0 :(得分:3)
1)您在deger = '-1'
2)您可以将TIME括在反引号(`)中以防止其他可能的错误
正确(试试吗?)查询拼写:
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
也是数字,那么您还需要从其值中删除引号。
答案 1 :(得分:1)
您可以使用反引号转义关键字“time”:
UPDATE ip_p SET deger = '-1', `TIME` = '123' WHERE ip = '12' AND premium = '1'
我相信你也删掉了一个逗号,这可能是你遇到错误的原因。但一般来说,如果你有一个特殊于MySQL的列名,那就逃避吧。
答案 2 :(得分:0)
您可以,但必须将该名称括在反引号`
中。作为一般规则,我始终将列名包含在其中,因为它清楚地表明它们是什么。
答案 3 :(得分:0)
您在TIME
之前缺少逗号:
UPDATE ip_p SET deger = '-1', TIME = '123' WHERE ip = '12' AND premium = '1'
^