更新行的mysql语法错误

更新行的mysql语法错误,mysql,database,Mysql,Database,我得到#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'-crawler setflag_images='0',其中id='966''在第1行的正确语法 为什么语法错误? 亚马逊爬虫就是这个表 标记图像和id是列我猜表名中的连字符会导致问题,因为它是一个算术运算符。还请尝试转义表名: update amazon-crawler set `flag_images`= '0' where `id`='966' 请注意,除非绝对需要,否则应尽量避免在查询

我得到#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'-crawler set
flag_images
='0',其中
id
='966''在第1行的正确语法 为什么语法错误? 亚马逊爬虫就是这个表
标记图像和id是列

我猜表名中的连字符会导致问题,因为它是一个算术运算符。还请尝试转义表名:

update amazon-crawler set `flag_images`= '0' where `id`='966'
请注意,除非绝对需要,否则应尽量避免在查询中使用反勾号。使用backticks意味着任何名称都可能起作用,即使是一个恰好是MySQL保留关键字的名称。另外,我猜
flag\u图像
id
是数字列,在这种情况下,您应该将它们与数字而不是字符串进行比较。因此,我会将您的更新写为:

UPDATE `amazon-crawler` SET `flag_images`= '0' WHERE `id` = '966';

在这里,只有表名必须出现在反勾号中。

您可以添加列类型吗?切勿将“-”用作表/列标识符的一部分。这可能是灾难性的。
UPDATE `amazon-crawler` SET flag_images= 0 WHERE id = 966;