首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能在mysql查询中使用'time‘这个词吗?

我不能在mysql查询中使用'time‘这个词吗?
EN

Stack Overflow用户
提问于 2012-01-22 23:29:27
回答 4查看 1.5K关注 0票数 0

我不能使用'time‘字作为我在mysql查询中的列名。

这是我的查询代码:(不工作)

代码语言:javascript
复制
UPDATE ip_p SET deger =  '-1' TIME =  '123' WHERE ip =  '12' AND premium =  '1'

错误是:

#1064 -您的SQL语法有错误;请检查与MySQL服务器版本相对应的手册,以便在第1行使用接近“time=‘123’的正确语法,其中ip = '12‘和premium =’1‘。

但是这个代码是有效的:

代码语言:javascript
复制
UPDATE ip_p SET deger =  '-1' WHERE ip =  '12' AND premium =  '1'

我要改我的列名吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-22 23:31:41

1)你在deger = '-1'之后失去了昏迷

2)你可以把时间限制在后面(‘),以防止其他可能的错误。

对吗(试一下?)查询拼写:

代码语言:javascript
复制
UPDATE ip_p SET deger =  '-1', `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

更新

对评论的答复:

deger列减少1的正确查询如下:

代码语言:javascript
复制
UPDATE ip_p SET deger =  deger-1, `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

如果您只需要将其设置为-1,则执行:

代码语言:javascript
复制
UPDATE ip_p SET deger = -1, `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

还请注意,单引号(')的语法应该仅用于字符串(varachar(.)列等);用于不正确的数字。如果您需要指定数字-只需做它没有任何引号。我对deger列进行了更改(显然,如果要从中减去某项内容,它是数字的),但对于其他列则没有更改,因为我不知道它们的类型。如果列TIMEippremium也是数字,那么还需要从它们的值中删除引号。

票数 3
EN

Stack Overflow用户

发布于 2012-01-22 23:31:28

您可以通过使用backticks来转义关键字"time“:

代码语言:javascript
复制
UPDATE ip_p SET deger =  '-1', `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

我相信你也掉了一个逗号,这可能是你在这里出错的原因。但是通常情况下,如果您有一个对MySQL特殊的列名,请转义它。

票数 1
EN

Stack Overflow用户

发布于 2012-01-22 23:31:33

可以,但必须将名称括在backticks `中。作为一般规则,我总是把列名附在其中,因为它清楚地说明了列名是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8965687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档