如何按两列排序MySQL?

时间:2013-01-15 20:28:31

标签: php mysql sql sorting

我与几个朋友建立了一个音乐博客,我制作了一个MySQL表来跟踪帖子的观点。我有一列用于跟踪管理员视图,一列用于跟踪每个帖子的用户视图。

我正在创建一个页面,可以通过大多数管理员视图,大多数用户视图和总视图轻松查看和排序。我没有在我的MySQL数据库中为“总视图”创建一个列(要计算,我只是将管理视图添加到用户视图中。简单明了)。

我可以通过查询SELECT * FROM log ORDER BY ADMIN DESC轻松地按管理员视图排序,对用户视图也是如此,但有一种简单的方法可以执行SELECT * FROM log ORDER BY ADMIN + USER DESC这样的操作吗?如果没有,我将不得不使用我的代码来提供我自己的排序算法。

提前致谢。

2 个答案:

答案 0 :(得分:5)

查询与您所说的完全相同:

SELECT  *
FROM    log
ORDER BY
        admin + user DESC

如果您为总视图创建了一个单独的列并将其编入索引,则可以在查询中使用它:

SELECT  *
FROM    log
ORDER BY
        total_views DESC
LIMIT   10

可以提高有限查询的SELECT速度。按照您的方式,即使您只选择前10条评论,也应扫描并订购整个表格。

答案 1 :(得分:1)

如果除了排序之外你还要使用总视图,我建议:

SELECT *,(`admin`+`user`) as `total` FROM `log` ORDER BY `total` DESC

这会在结果中添加一个“总计”字段,您可以在计算中显示或使用该字段。