我有2列的表,我想编写一个查询来获取另一列数据集的给定值的行位置:
例如,我想在组名“punee”和“ansh”中获得参赛者“anku_883”的位置,这是我期待“punee”位置5和“ansh”位置1使用单个查询。
我编写了以下查询,如果我指定一个特定的组名(例如ansh),那么我可以正确地获得该组中参赛者的位置:
SELECT x.group_name
, x.position
FROM (SELECT t.group_name
, @rownum := @rownum + 1 AS position
FROM game t
JOIN (SELECT @rownum := 0) r
WHERE t.group_name='ansh'
ORDER BY t.add_time
) x
WHERE x.contestant = 'anku_883'
我想扩展此查询,以便我在其名称出现的所有组名中获得特定参赛者的位置。类似的东西:
SELECT x.group_name
, x.position
FROM (SELECT t.group_name
, @rownum := @rownum + 1 AS position
FROM game t
JOIN (SELECT @rownum := 0) r
WHERE t.group_name in ('punee','ansh')
ORDER BY t.add_time
) x
WHERE x.contestant = 'anku_883'