Сортировка данных по разнице двух столбцов - PullRequest
0 голосов
/ 07 ноября 2011
ID    Vote_Up    Vote_Down    ***DIFFERENCE***
1         3            1             2
2         1            3            -2
3         23           7             16
4         5            1             4
5         7            5             2
6         2            2             0
7         9            1             8    

Как отсортировать данные выше в mysql на основе разницы в Vote_Up и Vote_Down, не создавая другой столбец для хранения их различий?

vote_up - vote_down

Так что будет отсортировано так:

ID    Vote_Up    Vote_Down    ***DIFFERENCE***
3         23           7             16
7         9            1             8    
4         5            1             4
5         7            5             2
1         3            1             2
6         2            2             0
2         1            3            -2

Ответы [ 3 ]

2 голосов
/ 07 ноября 2011

@ Konerak: РАЗНИЦА это не поле. Используйте этот запрос SQL:

SELECT * FROM table ORDER BY Vote_Up - Vote_Down DESC;

или

SELECT *, Vote_Up - Vote_Down as DIFFERENCE FROM table ORDER BY DIFFERENCE DESC;
2 голосов
/ 07 ноября 2011

Вы можете просто вычесть их:

SELECT * FROM table ORDER BY Vote_Up-Vote_Down DESC
1 голос
/ 07 ноября 2011

Еще один вариант (с подзапросом) -

SELECT * FROM (
  SELECT ID, Vote_Up, Vote_Down, Vote_Up - Vote_Down DIFFERENCE FROM table_name
) t
ORDER BY DIFFERENCE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...