使用MySQL在多个范围内排序编号

使用MySQL在多个范围内排序编号,mysql,asp.net,sorting,Mysql,Asp.net,Sorting,我正在开发一个教育网站,需要按数字范围排序。我需要一些关于如何将我的数据分类到下面列出的范围的帮助。 581是最高的,604是最低的。它从604开始到582,然后从1开始到581 (Highest) 581 580 579. . . 3 2 1 582 . . . 602 603 604 (Lowest) 这里有一个想法 SELECT * FROM ints; +---+ | i | +---+ | 0 | | 1 | | 2

我正在开发一个教育网站,需要按数字范围排序。我需要一些关于如何将我的数据分类到下面列出的范围的帮助。 581是最高的,604是最低的。它从604开始到582,然后从1开始到581

(Highest) 581 580 579.   .   . 3     2   1   582     .   .   .   602     603     604    (Lowest)
这里有一个想法

SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+

SELECT i,CASE WHEN i < 5 THEN 1000-i ELSE i END x FROM ints ORDER BY x;
+---+------+
| i | x    |
+---+------+
| 5 |    5 |
| 6 |    6 |
| 7 |    7 |
| 8 |    8 |
| 9 |    9 |
| 4 |  996 |
| 3 |  997 |
| 2 |  998 |
| 1 |  999 |
| 0 | 1000 |
+---+------+
从ints中选择*;
+---+
|我|
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+
选择i,当i<5时,选择大小写,然后选择1000-i,否则,i按x从整数顺序结束x;
+---+------+
|i | x|
+---+------+
| 5 |    5 |
| 6 |    6 |
| 7 |    7 |
| 8 |    8 |
| 9 |    9 |
| 4 |  996 |
| 3 |  997 |
| 2 |  998 |
| 1 |  999 |
| 0 | 1000 |
+---+------+
你也可以这样写

SELECT i FROM ints ORDER BY CASE WHEN i < 5 THEN 1000-i ELSE i END;
当i<5时,按大小写从ints订单中选择i,然后选择1000-i,否则i结束;