【问题标题】:Is there MySQL offsest for update?是否有用于更新的 MySQL 偏移量?
【发布时间】:2011-03-28 01:16:57
【问题描述】:

我有一个没有主键或唯一键的表。

我想更新按日期排序的第 n 个记录中的一些值。

mysql 更新限制没有偏移量(如限制 1,2),我该怎么做?

【问题讨论】:

  • 您必须查看使用变量创建排名值的 MySQL 查询,该值会在值更改时重置以获得类似于 ROW_NUMBER() OVER(PARTITION BY value) AS rank 的功能,因为 MySQL 不支持分析函数跨度>

标签: mysql limit offset


【解决方案1】:
UPDATE table_name
...
WHERE ids in ( SELECT ids FROM table_name limit ....)

【讨论】:

  • 您好 spin_palte,不走运,此表中没有任何主键或唯一键。
【解决方案2】:

这很丑,但是...

你能创建一个临时表吗?我建议使用日期字段的排序值创建一个临时表,并使用 LIMIT 子句进行选择。然后,您可以使用临时表中的值更新原始表。

应该是这样的:

create temporary table temp 
  select date_field from mytable order by date_field limit 4,2;

update mytable set another_field='FOUND' 
 where date_field in (select date_field from temp);

【讨论】:

    猜你喜欢
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多