[英]inner-join in MYSQL with UPDATE not working
語法無效,並在@rt:=上返回錯誤#1064錯誤...我不知道在哪里放置變量,以便它可以工作。
UPDATE table
@rt:=@rt+quantity;
INNER JOIN (SELECT @rt:=0) AS init ON 1=1
SET status='1'
WHERE price<10
AND @rt<=22
帶有SELECT http://sqlfiddle.com/#!2/1f125c的工作表
一種方法是:
UPDATE `table`
SET status = '1'
WHERE price < 10
limit 22;
您不需要該變量來限制行數。 這將更新價格滿足where
子句中條件的22行。 這是您要做什么的最佳猜測。
編輯:
哦,您正在嘗試獲取數量的總和 。 也許這會做您想要的:
UPDATE `table` cross join
(SELECT @rt := 0) vars
SET status = if((@rt := @rt + quantity) <= 22, '1', status)
WHERE price < 10;
SQL Fiddle在這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.