2013-01-15 90 views
1

我和几位朋友一起制作了一个音乐博客,并且我制作了一张MySQL表格来跟踪帖子视图。我有一列用于跟踪管理员视图,一列用于跟踪每个帖子的用户视图。如何按两列对MySQL进行排序?

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

我可以通过查询SELECT * FROM log ORDER BY ADMIN DESC和用户视图的相同方式轻松地对管理员视图进行排序,但有没有简单的方法可以执行类似SELECT * FROM log ORDER BY ADMIN + USER DESC的操作?如果没有,我将不得不搅乱我的代码以提供我自己的排序算法。

提前致谢。

+3

这可以通过快速的Google搜索轻松解决。 – Kyle

+0

ADMIN或USER视图的数据类型是什么? – Satish

+0

只是为了澄清:你想'ORDER BY'全视图? – Quassnoi

回答

5

查询是完全按照你所说的那样:

SELECT * 
FROM log 
ORDER BY 
     admin + user DESC 

如果你创建了总的观点一个单独的列和索引的话,你可以在查询中使用它:

SELECT * 
FROM log 
ORDER BY 
     total_views DESC 
LIMIT 10 

这将针对有限的查询提高速度SELECT。您做这件事的方式,即使您只选择了前10条评论,整个表格也应该被扫描和订购。

1

如果你要使用的总的看法任何东西,除了排序,我建议:

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

这将是“总”字段添加到您的结果,您可以显示或计算中使用。

+0

我不知道AS!谢谢! – 11684