语法错误#1064

时间:2015-04-17 13:31:49

标签: mysql sql mysql-error-1064

这是我的疑问:

update `zen_meta_tags_products_description` 
set `metatags_keywords`= 'ice machine, ice maker, ice flaker, Brema,'
WHERE `products_id` = ('1231'; '1232'; '1233'; '1234'; '1235'; '1236'; '1237'; '1238'; '1239'; '1240';) 

错误

MySQL说:文档

  

1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在' 1232,1233'附近使用。在第1行

2 个答案:

答案 0 :(得分:3)

您无法使用=来比较多个值。您需要使用IN()IN()中值的分隔符是逗号,而不是半冒号。最后一个也没有必要,会导致错误。除非您确实将它们存储为字符串,否则ID周围的引号也不是必需的。

update zen_meta_tags_products_description 
set metatags_keywords= 'ice machine, ice maker, ice flaker, Brema,' 
WHERE products_id IN(1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240)

答案 1 :(得分:1)

从列表中删除分号而不是=使用IN来获取写入结果:

UPDATE `zen_meta_tags_products_description` 
set `metatags_keywords`= 'ice machine, ice maker, ice flaker, Brema,'
WHERE `products_id` IN ('1231', '1232', '1233','1234', '1235', '1236', '1237', '1238', '1239', '1240') ;