我请求任何人帮助我更好地命名这个问题,我不确定如何调用它。也许有人读完下面的问题就会有一个想法:
所以我在 MySQL 中存储了一组玩家及其组。在DB中,由于遗留原因,它们以一种奇怪的方式存储(像链一样),如下所示:
Player_Id New_Group
100 1
101 0
102 0
103 0
104 1
105 0
106 0
107 0
108 0
所以这里基本上 PlayerId 100 将 New_Group 设置为 1。所以他处于新组的开始位置。现在所有在他之后的玩家,因为New_Group为0,都属于他的组。当我们到达 104 时,一个新的组开始。
我想要做的是编写一个查询,它将给出如下结果:
Player_Id Group_Id
100 1
101 1
102 1
103 1
104 2
105 2
106 2
107 2
108 2
你明白了...我正在尝试将 New_Group 逻辑转换为只为玩家生成伪组 ID 的东西。
但是,这超出了我的 SQL 技能范围。如果任何 SQL 大师可以帮助我,那就太棒了。我使用 MySQL。
最佳答案
这个怎么样?
SET @group = 0;
SELECT Player_Id, IF(New_Group, @group:=@group + 1, @group) AS Group_Id
FROM [table]
ORDER BY Player_Id;
关于mysql - 创建一个将 "chained"id 转换为 "grouped"id 的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43808499/