假设我有一张带有karma_up和karma_down的表格。每当有人投票时,karma_up会增加,每次有人投票时,karma_down也会增加。如何提取这些选择的行并按这些新值的总和对它们进行排序? ORDER BY(karma_up - karma_down)似乎并不像我想要的那样工作。我只想把具有最高业力的行放在最上面。
答案 0 :(得分:20)
非常简单
SELECT
ID, KARMA_UP, KARMA_DOWN, (KARMA_UP-KARMA_DOWN) AS USER_KARMA
FROM KARMA
ORDER BY USER_KARMA DESC
答案 1 :(得分:7)
SELECT *, karma_up - karma_down AS karma_total
FROM MyTable
ORDER BY karma_total DESC;
答案 2 :(得分:0)
这有用吗?如果没有,你可以在你的问题中包含结果吗?对表达式的排序应该按预期工作。
SELECT `post_id`, `karma_up`, `karma_down`, `karma_up` - `karma_down` AS `total`
ORDER BY `total` DESC