2013-03-24 45 views
0

有什麼不對的SQL查詢..它不斷給我一個錯誤...和錯誤也低於有什麼不對的SQL查詢

這裏要注意的查詢:

UPDATE Politicians SET Big Fan = Big Fan +3 WHERE ID = '2' 

MySQL said: Documentation 
#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 'Fan = Big Fan + 3 WHERE ID ='2'' at line 1 
+4

我建議您不要在列名或表名中使用空格。 – Taryn 2013-03-24 19:49:16

+0

我也是。或者是關鍵字,龐大的PIA。 – 2013-03-24 19:51:34

回答

0

現在你才發現爲什麼在表和列名稱空間是一個PIA

猜測,但

UPDATE Politicians SET `Big Fan` = `Big Fan` +3 WHERE ID = '2' 

假設政治家有一個名爲列Big Fan,mysql正在看大字和扇子,它們都不瞭解它。

包裝在反引號,使得它認爲這是一個「字」,那麼,它知道你指的是在政治家表

+0

「mysql正在看到單詞大和字扇,它都不理解。」 ---這是不正確的。如果你檢查錯誤信息,你會發現它是語法錯誤,並且mysql在「粉絲」令牌上失敗,並且解析了「大」標記 – zerkms 2013-03-24 19:50:40

+0

謝謝!!!!感謝它..這是問題 – Rogers 2013-03-24 20:05:56

+0

@zerkms。它沒有被解析。這是解析器用完可用選項的關鍵點。 – 2013-03-24 22:40:29

3

你必須當列名中有空格時使用反引號:

UPDATE Politicians SET `Big Fan` = `Big Fan` +3 WHERE ID = '2' 
0

由於列名中有空格。

UPDATE Politicians SET `Big Fan` = `Big Fan` +3 WHERE ID = '2' 
+0

單引號? – zerkms 2013-03-24 19:48:56

+0

@zerkms剛剛意識到我急於得到我的答案 – 2013-03-24 19:50:03

0

您缺少方括號。試試這個

UPDATE Politicians SET [Big Fan] = [Big Fan] +3 WHERE ID = '2' 
+0

這將是訪問/ sql服務器 – 2013-03-24 22:29:55

0

這是因爲你的MySQL表名中有一個空格。我相信你可以嘗試這樣的事:

UPDATE `Politicians` SET `Big Fan` = `Big Fan` + 3 WHERE `ID` = '2' 
0

列在理想情況下,你不應該有在列名的空間。相反有「 - 」或下劃線。現在,如果你有空間,那麼你可以在這個案例中使用'列名'。

+0

單引號用於分隔mysql中的字符串文字 – zerkms 2013-03-24 22:54:10