使用ORDER BY和LIMIT的更新在MYSQL中不起作用

我是MYSQL的新手,无法解决甚至在该论坛上回答太多,也无法识别此语句中的错误。我正在使用MYSQL数据库。

我有2个表:Ratemaster和Rates,客户可以在其中拥有1个具有不同费率的产品。因此,有一个重复的客户和产品字段,只有费率字段更改。现在,Table

Ratemaster具有所有字段:id,客户代码,产品,费率,用户,而Table

Rate仅具有:id,客户代码,费率,用户。-用户字段用于检查session_user。

现在,表Ratemaster具有3条记录,所有字段的值都相同,但Rate字段为空。桌费有不同的费率。我想从Rates表中的Ratemaster中更新所有价格。我无法使用mysql

UPDATELIMITmysql命令执行此操作,它给出以下错误:

错误使用UPDATE和LIMIT

UPDATE Ratemaster, Rates 

SET Ratemaster.Rate=Rates.Rate

WHERE Ratemaster.user=Rates.user

LIMIT 1

回答:

通常,您可以在语句中使用LIMIT和,但在您的情况下则不能使用,如MySQL文档12.2.10中所述。UPDATE语法:ORDER``UPDATE

对于多表语法,UPDATE更新满足条件的table_references中命名的每个表中的行。在这种情况下,不能使用ORDER BY和LIMIT。

请尝试以下操作:

UPDATE Ratemaster

SET Ratemaster.Rate =

(

SELECT Rates.Rate

FROM Rates

WHERE Ratemaster.user = Rates.user

ORDER BY Rates.id

LIMIT 1

)

以上是 使用ORDER BY和LIMIT的更新在MYSQL中不起作用 的全部内容, 来源链接: utcz.com/qa/417661.html

回到顶部