Digamos que tengo una tabla con karma_up y karma_down. Cada vez que alguien vota, karma_up se incrementa y cada vez que alguien vota, karma_down también se incrementa. ¿Cómo puedo seleccionar una selección de filas y orderarlas por la sum de estos nuevos valores? ORDER BY (karma_up – karma_down) no parece funcionar como yo quiero. Simplemente quiero las filas con el karma más alto arriba.
Muy simple
SELECT ID, KARMA_UP, KARMA_DOWN, (KARMA_UP-KARMA_DOWN) AS USER_KARMA FROM KARMA ORDER BY USER_KARMA DESC
SELECT *, karma_up - karma_down AS karma_total FROM MyTable ORDER BY karma_total DESC;
¿Esto funciona? Si no, ¿podría include los resultados en su pregunta? Ordenar en una expresión debería funcionar como se esperaba.
SELECT `post_id`, `karma_up`, `karma_down`, `karma_up` - `karma_down` AS `total` ORDER BY `total` DESC