如何根据 MySql 中的组在表行上分配动态数字组 ID?

问题描述 投票:0回答:1

我有一张这样的桌子:

姓名 家人 年龄 id
测试1 测试1 gr_one 23 1
测试2 测试2 gr_one 28 2
测试3 测试3 gr_two 24 3
测试4 测试4 gr_三 30 4
测试5 测试5 gr_三 35 5

我需要一个查询来创建这样的结果:

动态_id
gr_one 1
gr_two 2
gr_三 3

我使用的是Mysql 5.7版本,所以似乎不支持窗口函数。

mysql
1个回答
0
投票
SELECT `group`, @id := @id + 1 dynamic_id
FROM ( SELECT DISTINCT `group` FROM tablename) groups
CROSS JOIN ( SELECT @id := 0 ) variable;

如果需要,您可以添加 ORDER BY 来定义行枚举顺序。

© www.soinside.com 2019 - 2024. All rights reserved.