我不是编程新手,但我是MySQL和PHP的新手。我想知道最有效的方法是做什么。我不需要实际的代码,只需要步骤。
我有一份用户评论列表,简单地说:
USER REVIEW
Bob nice
John good
Fred bad
Bob poor
Bob the best
Fred medicre
Bob shiny
我希望能够创建评论最多的评论者列表,即
USER REVIEWS
Bob 4
Fred 2
John 1
这是以最有效的方式实现这一目标的最佳方式
欢呼声!!
答案 0 :(得分:9)
如您的查询:
SELECT user, COUNT(*) AS reviews
FROM <table name>
GROUP BY user
ORDER BY reviews DESC;
答案 1 :(得分:3)
有时候程序员用代码解释自己会更容易:
// Credit to Chad Birch for the query...
$query = "SELECT user, COUNT(*) AS reviews
FROM <table name>
GROUP BY user
ORDER BY reviews DESC";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0) {
$res_array = mysql_fetch_assoc($res);
$list = "<h1>USER REVIEWS</h1>\n";
foreach($res_array as $user) {
$list .= $user['user'].' '.$user['reviews']."<br />\n";
}
}
echo $list;
所以,基本上,9/10次,最好让SQL进行排序和填充,因为它在这样的东西上更有效率。