2013-03-24 97 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