Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-选择值在一列中的位置,该列由另一列值分组_Mysql - Fatal编程技术网

Mysql-选择值在一列中的位置,该列由另一列值分组

Mysql-选择值在一列中的位置,该列由另一列值分组,mysql,Mysql,我有一个2列的表,我想写一个查询来获取另一列数据集组中给定值的行位置: 例如,我想通过单个查询获得参赛者“anku_883”在组名“punee”和“ansh”中的位置,即我期望的“punee”位置5和“ansh”位置1 我已经编写了以下查询,如果我指定了一个特定的组名(例如ansh),那么我就可以正确地获得参赛者在该组中的位置: SELECT x.group_name , x.position FROM (SELECT t.group_name , @rownum := @rown

我有一个2列的表,我想写一个查询来获取另一列数据集组中给定值的行位置:

例如,我想通过单个查询获得参赛者“anku_883”在组名“punee”和“ansh”中的位置,即我期望的“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'

SQL表表示无序集,因此如果没有指定排序的字段,就没有固有的排序。您有这样的字段吗?是的,我在该表中有另一列(添加时间),我在Order By中使用该列。请查看我编辑的查询。