更新多列时的MySQL错误1064

时间:2013-04-07 20:24:53

标签: mysql sql-update multiple-columns

我有以下SQL查询:

UPDATE mytable SET status = '2', dec = '268435458001932988' WHERE id = 29952

表是:

status = varchar(1)
dec = varchar(23)

在我在手册中阅读之后,我可以通过用“,”分隔多个列来更新。

为什么我在这里遇到语法错误(1064)?

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dec = '268435458001932988' WHERE id = 29952' at line 1

3 个答案:

答案 0 :(得分:3)

DEC显然是MySQL中的保留字。使用反引号。

UPDATE Mytable SET status = '2', `dec` = 'etc.'...

保留字列表:https://dev.mysql.com/doc/refman/4.1/en/reserved-words.html

答案 1 :(得分:2)

dec是保留字(decimal的简写)。尝试使用反引号引用dec标识符:

更新mytable set status ='2',`dec` ='268435458001932988'其中id = 29952;

答案 2 :(得分:1)

试试这个

 UPDATE mytable SET status = '2', `dec` = '268435458001932988' WHERE id = 29952

DEC是mysql的保留关键字。