从派生列排序mysql行

时间:2010-10-29 20:11:50

标签: mysql sql-order-by

我想从mysql数据库中检索行并按投票排序:

votes_up + votes_down = votes

表:

posts{id, post_text, votes_up, votes_down, date}
ORDER BY votes

3 个答案:

答案 0 :(得分:6)

SELECT id, post_text, votes_up, votes_down, date, sum(votes_up + votes_down) as 'Votes'
FROM posts
ORDER BY sum(votes_up + votes_down)

答案 1 :(得分:3)

传统SQL允许您在ORDER BY中使用列别名:

  SELECT p.votes_up + p.votes_down AS total_votes
    FROM POSTS p
ORDER BY total_votes

答案 2 :(得分:1)

您可以使用blablabla ORDER BY sum(votes_up + votes_down),但要小心,不要在高负载的生产数据库上使用它,因为sum()将“动态”计算,对于大型表来说速度非常慢!