我与几个朋友建立了一个音乐博客,我制作了一个MySQL表来跟踪帖子的观点。我有一列用于跟踪管理员视图,一列用于跟踪每个帖子的用户视图。
我正在创建一个页面,可以通过大多数管理员视图,大多数用户视图和总视图轻松查看和排序。我没有在我的MySQL数据库中为“总视图”创建一个列(要计算,我只是将管理视图添加到用户视图中。简单明了)。
我可以通过查询SELECT * FROM log ORDER BY ADMIN DESC
轻松地按管理员视图排序,对用户视图也是如此,但有一种简单的方法可以执行SELECT * FROM log ORDER BY ADMIN + USER DESC
这样的操作吗?如果没有,我将不得不使用我的代码来提供我自己的排序算法。
提前致谢。
答案 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
这会在结果中添加一个“总计”字段,您可以在计算中显示或使用该字段。