语法无效,并在@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在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句