【发布时间】:2018-04-16 04:51:28
【问题描述】:
当我尝试在 mySql 中运行包含多个表和 Order By 和 LIMIT 的更新语句时,如下所示,
CREATE TRIGGER `Percent` AFTER INSERT ON `tbl_products`
FOR EACH ROW BEGIN
UPDATE
tbl_product_rate t1,
( SELECT tbl_products.id, (rate * number) AS prt
FROM tbl_products left join tbl_products_rate on tbl_products.id = tbl_products_rate.id GROUP BY id
) t2
SET
t1.option = t2.prt
WHERE
t1.id = t2.id ORDER BY t1.id LIMIT 1;
END
我有如下错误,
[Last executed query: EXECUTE mdb2_statement_mysql_142db9909b0277f32407f2a5d4da240eabf37dd822 USING @0]
[Native code: 1221]
[Native message: Incorrect usage of UPDATE and ORDER BY]
谁能告诉我如何修复上述更新语句,以便 order by 和 limit 可用于更新语句
有多张桌子?
附言如果我在没有 ORDER BY 和 LIMIT 的情况下运行更新语句,它将更新表中存在的所有行而不会出现错误。
【问题讨论】:
标签: mysql sql-order-by limit