当前位置: 首页 > 知识库问答 >
问题:

在JOIN语句上使用ORDER BY和LIMIT的MYSQL更新查询

曾典
2023-03-14

我正在尝试做一个更新查询,它将对5个用户的rewards_balance按购买日期排序求和。

用户表为:

id     rewards_balance
1      0
2      20
3      0
4      23
5      11
6      45
7      1
8      0
9      0 
10     10

这是我的订阅

payer_id     created
1           1616137161
2           1616137165
5           1616137166
7           1616137167
3           1616137168
4           1616137169
9           1616137175

更新查询应该以这样的方式工作,它将添加一个设置的数量到5个用户谁已经有了订阅在先。因此更新后的输出应该如下所示

id     rewards_balance
1      0+20
2      20+20
3      0+20
4      23
5      11+20
6      45
7      1+20
8      0
9      0 
10     10

因此,如您所见,这20只添加到那些首先订阅的ID中。

到目前为止我所尝试的是:

UPDATE users u LEFT JOIN subscription m ON u.id = m.payer_id SET u.rewards_balance = u.rewards_balance+20
ORDER BY `m`.`created` ASC LIMIT 10

我一直得到以下错误。

查询错误:UPDATE和ORDER By的用法不正确

请协助。

共有1个答案

束俊材
2023-03-14

多表更新中不允许使用Order ByLimit。请参阅文档。

 类似资料:
  • 我正在尝试更新表,下面是我正在使用的查询 我还尝试了另一个查询: 测试了运行良好的select查询,不确定问题是什么,在IBMDB2中是否有所不同。

  • 问题内容: 我针对最近遇到的错误整理了一个测试表。尝试从MySQL表中删除单个记录时,它涉及使用LIMIT。 我所说的错误是“ 您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以找到在第1行的’LIMIT 1’附近使用的正确语法 ” 我整理的桌子叫做 测试 ; 它有3列, id , name 和 created 。我用几条记录填充了表,然后尝试删除一条。以下是我用来尝试完成此操

  • 本文向大家介绍MySQL对limit查询语句的优化方法,包括了MySQL对limit查询语句的优化方法的使用技巧和注意事项,需要的朋友参考一下 当我们的网站达到一定的规模时,网站的各种优化是必须要进行的。而网站的优化中,针对数据库各种优化是最重点的了。下面作者将要和大家分享一下MySQL数据库中的查询语句有关limit语句的优化。 大家都知道一般limit是用在分页的程序的分页上的,当你的应用数据

  • 问题内容: 我的sql语句出了什么问题,它说问题在FULL JOIN附近,但是我很困惑: 请温柔些,因为我不是sql Fundi 问题答案: MySQL不提供完全连接,您可以使用 一对LEFT + RIGHT和UNION;或者 使用LEFT,RIGHT和INNER和UNION ALL的三元组 该查询也非常错误,因为您有GROUP BY,但是SELECT列不是聚合的。 将其正确转换为LEFT + R

  • 问题内容: 我是MYSQL的新手,无法解决甚至在该论坛上回答太多,也无法识别此语句中的错误。我正在使用MYSQL数据库。 我有2个表:Ratemaster和Rates,客户可以在其中拥有1个具有不同费率的产品。因此,有一个重复的客户和产品字段,只有费率字段更改。现在,Table Ratemaster具有所有字段:id,客户代码,产品,费率,用户,而Table Rate仅具有:id,客户代码,费率,

  • 问题内容: 如何批量更新mysql数据?如何定义这样的事情: 具有一些值,例如: 和其他值: 也许用mysql是不可能的?一个PHP脚本? 问题答案: 在这种情况下,最简单的解决方案是使用构造。它的工作速度非常快,并且可以轻松完成工作。 或使用建筑