使用ORDER BY和LIMIT的更新在MYSQL中不起作用
我是MYSQL的新手,无法解决甚至在该论坛上回答太多,也无法识别此语句中的错误。我正在使用MYSQL数据库。
我有2个表:Ratemaster和Rates,客户可以在其中拥有1个具有不同费率的产品。因此,有一个重复的客户和产品字段,只有费率字段更改。现在,Table
Ratemaster具有所有字段:id,客户代码,产品,费率,用户,而Table
Rate仅具有:id,客户代码,费率,用户。-用户字段用于检查session_user。
现在,表Ratemaster具有3条记录,所有字段的值都相同,但Rate字段为空。桌费有不同的费率。我想从Rates表中的Ratemaster中更新所有价格。我无法使用mysql
UPDATE
和LIMIT
mysql命令执行此操作,它给出以下错误:
错误使用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 RatemasterSET 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