Порядок по сумме двух полей


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

Author: Virat Kadaru, 2009-08-21

3 answers

Очень просто

SELECT 
ID, KARMA_UP, KARMA_DOWN, (KARMA_UP-KARMA_DOWN) AS USER_KARMA 
FROM KARMA 
ORDER BY USER_KARMA DESC
 19
Author: Virat Kadaru, 2009-08-20 22:49:25
SELECT *, karma_up - karma_down AS karma_total 
FROM MyTable
ORDER BY karma_total DESC;
 6
Author: Bill Karwin, 2009-08-20 22:41:01

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

SELECT `post_id`, `karma_up`, `karma_down`, `karma_up` - `karma_down` AS `total`
ORDER BY `total` DESC
 0
Author: John Millikin, 2009-08-20 22:40:51