我有一个名为 kb_views
的表
有一个名为 kb_seq
的列,它是名为 kb
sequence
使用PHP选择最受欢迎的10个项目的最佳方法是什么?
最好的方法是SQL查询本身,如果KB_SEQ包括每个元素视图的计数您可以使用
来提取前10个order by `kb_seq`.`count` desc limit 10
您的查询应该看起来像这样:
select * from `kb_seq` order by `kb_seq`.`count` desc limit 10
如果您没有这样的桌子,并且只有一个表格,每行是一个视图,则必须使用group
select count(*) as `viewed_times`, id FROM `kb_views` group by `viewed_item_id` order by `viewed_times` desc limit 10
是否适合您的要求:
SELECT
d.*
FROM
kb d,
(SELECT
s.kb_seq, COUNT(*)
FROM
kb s
INNER JOIN
kb_views ct ON ct.kb_seq = s.kb_seq
GROUP BY
s.kb_seq
Order by
2 DESC LIMIT 10) f
where
d.kb_seq = f.kb_seq
请参阅此处的结果sqlfiddle