MYSQL中的内部联接与UPDATE无法正常工作

tttddfd

语法无效,并在@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的工作表

戈登·利诺夫(Gordon Linoff)

一种方法是:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章