用于查找数据库中最受欢迎的项目类别的最佳SQL语句或算法

时间:2011-08-19 02:43:23

标签: php sql algorithm sorting

假设一个元素,例如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允许我更有效地做到这一点?

1 个答案:

答案 0 :(得分:2)

SELECT COUNT(*) AS popularity
FROM categories, views
WHERE views.category_id = categories.id
GROUP BY views.category_id
ORDER BY popularity DESC

这会选择所有类别,并从最热门到最不受欢迎的方式对其进行排序。