MySQL数据库中行的位置(索引)具有相同的值

时间:2014-07-19 18:19:44

标签: mysql

我需要获得列ssid找到的玩家位置,现在我正在使用此查询

SELECT Count(*) + 1 AS pos 
FROM user_data
WHERE honor > (
    SELECT honor 
    FROM user_data 
    WHERE ssid = ''
)

但这对于有相同荣誉的玩家不起作用,所以我需要先按照荣誉订购,然后再按lvl订购,如果它仍然是user_name的相同位置。

我不知道该怎么做,所以感谢所有答案。

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT pos, honor, lvl, user_name
FROM (
SELECT honor, lvl, user_name, @r:=@r+1 as pos
FROM user_data, (select @r:=0) r0
WHERE ss_id=''
ORDER BY honor, lvl, user_name) user_data_ordered;

关于SQL Fillde的示例 - 我不得不猜测数据类型,但它不应与此查询相关:http://sqlfiddle.com/#!2/e69b8a/1