我正在尝试更新mysql数据库中的表,并且出现语法错误。如果重要的话,这是一张MyISAM表。
这是sql
UPDATE product SET price=(price*1.0909)
JOIN product_to_category ON product.product_id = product_to_category.product_id
WHERE category_id =6
OR category_id =1
OR category_id =2
我的目标是从3个特定类别(* product_to_category *表中的信息)中获取产品列表,并将价格提高约10%。价格包含在产品表中。
从我在文档中看到的,我可以在update语句中使用join,并且我在过去也做过类似的查询。
这是一个生产网站,目前有大约40,000种产品。如果需要,我可以做一个php脚本,它将遍历产品并逐个进行,但似乎我应该可以直接从mysql中完成。
答案 0 :(得分:1)
你的陈述有点搞砸了。 SET
跟在JOIN
条款的UPDATE
之后。
UPDATE product
JOIN product_to_category
ON product.product_id = product_to_category.product_id
SET price = price * 1.0909
WHERE category_id IN (1,2,6)