簡體   English   中英

MYSQL中的內部聯接,而UPDATE無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM