PHP MySQL在表ORDER之后获取行ID

时间:2018-04-28 06:04:33

标签: php mysql sql-order-by

我不认为这是其他等级陈述的重复,因为其他人似乎没有在特定用户的搜索结果表中搜索<​​/ p>

我有一张类似于:

的表格
|       | column1 | column2 | column3 | column4 |
|-------|---------|---------|---------|---------|
| user1 | 100     | 49      | 3       | 1,980   |
| user2 | 7       | 5       | 51      | 500     |
| user3 | 1       | 65      | 44      | 307     |
| user4 | 6       | 66      | 445     | 397     |
| user5 | 4       | 67      | 442     | 437     |

我目前有这样的陈述来对表格进行排序:

$statement = "SELECT *
            FROM tracker_players
            ORDER BY (column1 + column2 + column3 + column4)
            DESC";

结果表将是:

|       | column1 | column2 | column3 | column4 |
|-------|---------|---------|---------|---------|
| user3 | 1       | 65      | 44      | 307     | // 417
| user2 | 7       | 5       | 51      | 500     | // 563
| user4 | 6       | 66      | 445     | 397     | // 914
| user5 | 4       | 67      | 442     | 437     | // 950
| user1 | 100     | 49      | 3       | 1,980   | // 2132

一旦我对表格进行了排序,我希望能够找出表格userX的位置。即user5位于第4位(或3位)如果零索引)。

感谢任何帮助。我似乎无法找到任何答案。

谢谢!

1 个答案:

答案 0 :(得分:0)

SELECT t.*, @rank := @rank + 1 as rank
FROM tracker_players t
CROSS JOIN (select @rank := 0) r
ORDER BY (t.column1 + t.column2 + t.column3 + t.column4) DESC