mysql – 在列中的每个副本上递增计数器

我有一张桌子:

id | value
1  | -
1  | a
2  | b
1  | c
3  | d
2  | e

那么我需要一个计数器列,它从1列开始,用于id列中的每个不同值

期望的选择结果:

id | value | counter
1  | -     | 1
1  | a     | 2
2  | b     | 1
1  | c     | 3
3  | d     | 1
2  | e     | 2

我发现的只是计算重复数等,但不是针对特定列的每个副本上的递增计数器……?

解决方法:

如果您不关心排序,只关注相应的行号,请使用如下变量:

SELECT 
  t.*, 
  @i:=IF(id=@id, @i+1, 1) AS num, 
  @id:=id 
FROM 
  t 
  CROSS JOIN (SELECT @i:=0, @id:=0) AS init 
ORDER BY id
上一篇:javascript – 根据多个数组输入过滤数组


下一篇:java – 输入重复键时保持原始键/值的Hashmap