假设一个元素,例如YouTube视频可以是各种类别,例如音乐,体育,娱乐。
我想查看数据库中的所有元素,并输出最常出现的类别的有序列表。
编辑:具体来说,有三个相关的数据库表。 1)item(name,id)2)category(name,id)3)item_category(item_id,category_id)
1)有什么比这更有效的了吗?:
Pseudocode
foreach (category)
select all database elements which match that category
associate category with the number of results from the select query
return the associative array
sort the associative array on the values of each category (key)
2)什么PHP函数允许我轻松地对关联数组的值进行排序?或者SQL允许我更有效地做到这一点?
答案 0 :(得分:2)
SELECT COUNT(*) AS popularity
FROM categories, views
WHERE views.category_id = categories.id
GROUP BY views.category_id
ORDER BY popularity DESC
这会选择所有类别,并从最热门到最不受欢迎的方式对其进行排序。