Mar*_*ius 1 mysql sql-order-by
我有一个表格,可以按等级排序.我想获得前10个条目(这很简单SELECT * FROM table ORDER BY rank DESC,但是我希望这些条目按降序排列,因此排名最低的条目最终会在顶部.我该怎么做?
oni*_*nik 10
(SELECT * FROM table ORDER BY rank DESC LIMIT 10) ORDER BY rank ASC;
Run Code Online (Sandbox Code Playgroud)
这是你在找什么?
你应该能够做到:
SELECT *
FROM (SELECT * FROM `table` ORDER BY rank DESC LIMIT 10) dt
ORDER BY dt.rank ASC;
Run Code Online (Sandbox Code Playgroud)
我猜你有一张这样的表:
CREATE TABLE `table` (id int, rank int);
INSERT INTO `table` VALUES (1, 20), (2, 19), (3, 18), (4, 17), (5, 16), (6, 15),
(7, 14), (8, 13), (9, 12), (10, 11), (11, 10),
(12, 9), (13, 8), (14, 7), (15, 6), (16, 5), (17, 4),
(18, 3), (19, 2), (20, 1);
Run Code Online (Sandbox Code Playgroud)
你会得到这样的结果:
+------+------+
| id | rank |
+------+------+
| 10 | 11 |
| 9 | 12 |
| 8 | 13 |
| 7 | 14 |
| 6 | 15 |
| 5 | 16 |
| 4 | 17 |
| 3 | 18 |
| 2 | 19 |
| 1 | 20 |
+------+------+
10 rows in set (0.02 sec)
Run Code Online (Sandbox Code Playgroud)
更新:
@onik 的解决方案返回相同的结果。