2013-04-07 68 views
0

我有以下SQL查詢時:MySQL錯誤1064更新多個列

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 
+0

是否有'id'列? – Aiias 2013-04-07 20:26:19

+0

是的,當我刪除「,dec ='268435458001932988'」它工作正常 – 2013-04-07 20:26:55

回答

3

DEC顯然是MySQL中的一個保留字。使用反引號。

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

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

+1

argh ...(headbang)...謝謝...現在工作...他們應該真的更新錯誤信息:D – 2013-04-07 20:28:41

+1

@MichaelGrenzer I不能說我不同意... MySQL是相當臭名昭着的錯誤消息 – 2013-04-07 20:29:11

+1

,這讓我頭痛3個小時..大聲笑。我應該給他們發一張阿司匹林的發票...會在幾分鐘內接受..再次感謝。 – 2013-04-07 20:31:06

2

dec是一個保留字(簡寫decimal)。嘗試用反引號引用dec標識符:

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

1

試試這個

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

DEC保留關鍵字爲MySQL。