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

bd96500e110b49cbb3cd949968f18be7.png

I am new to MYSQL, and unable to resolve or even with so many answers on this forum, unable to identiy the error in this statement. I am using MYSQL database.

I have 2 tables: Ratemaster and rates, in which a customer can have 1 product with different rates.

Because of this, there is a duplication of customer and product fields, only the rate field changes.

Now Table Ratemaster has all the fields : id, Customer code, Product, Rate, user

whereas Table Rates has only: id, cust code, Rate, user.

- user field is for checking session_user.

Now Table Ratemaster has 3 records with all field values being same except Rate field empty.

Table Rates has different rates.

I want to have all rates to be updated in Ratemaster from Rates table. I am unable to do this with UPDATE and LIMIT mysql command, it is giving error as:

Incorrect usage of UPDATE and LIMIT

UPDATE Ratemaster, Rates

SET Ratemaster.Rate=Rates.Rate

WHERE Ratemaster.user=Rates.user

LIMIT 1

解决方案

Usually you can use LIMIT and ORDER in your UPDATE statements, but in your case not, as written in the 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.

Try the following:

UPDATE Ratemaster

SET Ratemaster.Rate =

(

SELECT Rates.Rate

FROM Rates

WHERE Ratemaster.user = Rates.user

ORDER BY Rates.id

LIMIT 1

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值