如何按自定义字段排序MySQL ResultSet?
问题描述:
以下是架构和数据:如何按自定义字段排序MySQL ResultSet?
Create table tblTestSorting (col int);
INSERT INTO tblTestSorting VALUES(2), (5), (3), (6), (4), (7), (1)
我有这样的查询:
SELECT col, 5-col AS 'extra' FROM tblTestSorting ORDER BY 'extra';
我想通过“额外”的列进行排序的结果,但 此查询不放弃我结果按“额外”列排序。
如何实现此目的?
答
试试这个:
SELECT col, (5 - col) AS extra
FROM tblTestSorting
ORDER BY extra;
输出
| COL | EXTRA |
|-----|-------|
| 7 | -2 |
| 6 | -1 |
| 5 | 0 |
| 4 | 1 |
| 3 | 2 |
| 2 | 3 |
| 1 | 4 |
答
产生由式(ASC或DESC)的顺序.. 试试这个..
SELECT col, 5-col AS extra FROM tblTestSorting ORDER BY col ASC
答
两种方式
SELECT col, 5-col AS 'extra' FROM tblTestSorting ORDER BY 5-col;
SELECT col, 5-col AS 'extra' FROM tblTestSorting ORDER BY 2;
答
试试这个:
SELECT col, 5-col AS 'extra' FROM tblTestSorting ORDER BY 'extra' ASC
或
SELECT * FROM (SELECT col, 5-col AS 'extra' FROM tblTestSorting) as t ORDER BY t.'extra' ASC
答
解决方案1
SELECT * FROM(SELECT关口,5-COL AS“额外'FROM tblTemp)额外订购
或溶液2
SELECT栏,5-COL AS`extra` FROM tblTemp为了通过`extra`