1

我正在尝试更新 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 做。

4

1 回答 1

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)
于 2013-09-29T00:00:52.617 回答