Порядок по сумме двух полей - PullRequest
10 голосов
/ 21 августа 2009

Допустим, у меня есть таблица с karma_up и karma_down. Каждый раз, когда кто-то голосует, karma_up увеличивается и каждый раз, когда кто-то голосует, karma_down также увеличивается. Как я могу получить эти выборки строк и упорядочить их по сумме этих новых значений? ORDER BY (karma_up - karma_down), похоже, не работает так, как я хочу. Я просто хочу строки с самой высокой кармой наверху.

Ответы [ 3 ]

20 голосов
/ 21 августа 2009

Очень просто

SELECT 
ID, KARMA_UP, KARMA_DOWN, (KARMA_UP-KARMA_DOWN) AS USER_KARMA 
FROM KARMA 
ORDER BY USER_KARMA DESC
7 голосов
/ 21 августа 2009
SELECT *, karma_up - karma_down AS karma_total 
FROM MyTable
ORDER BY karma_total DESC;
0 голосов
/ 21 августа 2009

Это работает? Если нет, не могли бы вы включить результаты в свой вопрос? Упорядочивание по выражению должно работать как ожидалось.

SELECT `post_id`, `karma_up`, `karma_down`, `karma_up` - `karma_down` AS `total`
ORDER BY `total` DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...