2014-12-02 3 views
1

Ниже приводится схема и данные:Как сортировать 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'; 

Я хочу, чтобы получить результат, отсортированный по колонку «дополнительным», но Этот запрос не дает меня результат отсортирован по колонке «лишний» ..

Как достичь этого .. ??

ответ

1

Попробуйте это:

SELECT col, (5 - col) AS extra 
FROM tblTestSorting 
ORDER BY extra; 

Проверить SQL FIDDLE DEMO

ВЫВОД

| COL | EXTRA | 
|-----|-------| 
| 7 | -2 | 
| 6 | -1 | 
| 5 |  0 | 
| 4 |  1 | 
| 3 |  2 | 
| 2 |  3 | 
| 1 |  4 | 
0

дать заказ по типу (по возрастанию или по убыванию) .. попробовать это ..

SELECT col, 5-col AS extra FROM tblTestSorting ORDER BY col ASC 
0

два способа

SELECT col, 5-col AS 'extra' FROM tblTestSorting ORDER BY 5-col; 


SELECT col, 5-col AS 'extra' FROM tblTestSorting ORDER BY 2; 
0

Попробуйте это:

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 
0

Решение 1

выберите * из (SELECT Col, 5-седловины AS " extra 'FROM tblTemp) заказать дополнительно

или раствор 2

SELECT, столбец, 5-Col КАК `extra` ИЗ tblTemp порядке` extra`