【问题标题】:How to add "index" to group of rows in MySQL如何将“索引”添加到 MySQL 中的行组
【发布时间】:2014-12-06 20:05:22
【问题描述】:

我正在尝试在 MySQL 中的表中添加一个列,该列根据相同的 name 索引组的出现。

所以我在下面有namevalue 列。我想添加index 列;每次出现具有相同 name 的行时,它从 1 开始递增。

name | value | index A | 40 | 1 A | 60 | 2 A | 80 | 3 B | 20 | 1 B | 50 | 2 C | 10 | 1 D | 5 | 1

有没有办法做到这一点?

谢谢!

【问题讨论】:

标签: mysql


【解决方案1】:

尝试变量:

set @prev := null
set @index := 1

update yourtable
set index = if(
  @prev = name,
  @index := @index + 1,
  @index := 1
)
order by name, value;

但也请检查:Ranking by Group in MySQL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2016-07-23
    相关资源
    最近更新 更多