gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-29 00:19:50 26 4
gpt4 key购买 nike

我是MYSQL新手,论坛上这么多回答都无法解决,无法确定这句话的错误。我正在使用 MYSQL 数据库。

我有 2 个表:Ratemaster 和 rates,其中客户可以拥有 1 个具有不同费率的产品。因此,客户和产品字段存在重复,只有费率字段发生变化。现在表 Ratemaster 具有所有字段:id、客户代码、产品、费率、用户而 Table Rates 只有:id、cust code、Rate、user。- 用户字段用于检查 session_user。

现在 Table Ratemaster 有 3 条记录,所有字段值都相同,除了 Rate 字段为空。表费率有不同的费率。我想在 Ratemaster 中从 Rates 表更新所有费率。我无法使用 UPDATELIMIT mysql 命令执行此操作,它给出的错误如下:

Incorrect usage of UPDATE and LIMIT

UPDATE Ratemaster, Rates 
SET Ratemaster.Rate=Rates.Rate
WHERE Ratemaster.user=Rates.user
LIMIT 1

最佳答案

通常您可以在UPDATE 语句中使用LIMITORDER,但在您的情况下不能,如MySQL Documentation 12.2.10. UPDATE Syntax 中所写:

For the multiple-table syntax, UPDATE updates rows in each table named in table_references that satisfy the conditions. In this case, ORDER BY and LIMIT cannot be used.

尝试以下操作:

UPDATE Ratemaster
SET Ratemaster.Rate =
(
SELECT Rates.Rate
FROM Rates
WHERE Ratemaster.user = Rates.user
ORDER BY Rates.id
LIMIT 1
)

关于mysql - 使用 ORDER BY 和 LIMIT 更新在 MYSQL 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com