显示按点击排序的列表的特定数量的随机项

时间:2013-12-03 18:57:44

标签: php

我的视图中有一个浏览次数最多的区域。

我实际上在做的是对我的数据库的查询ORDER BY clicks DESC LIMIT 0, 3 并用foreach回应这个。在这一点上,它为用户提供了静态的方法。这就是为什么我要显示大多数已查看项目的随机项目,例如:ORDER BY clicks DESC LIMIT 0, 11并使用for循环($i=0; $i>=3;$i++)进行回显,并在回显之前随机播放项目$items[array_rand($items)];

实际上我觉得不舒服,因为可能会发生一个项目多次显示一次。

我的问题是,如果有一个很好的其他方法可以以干净的方式解决这个问题,而不会产生代码开销。

1 个答案:

答案 0 :(得分:0)

可以通过适当的查询完成。只需插入正确的表名。

SELECT *
FROM
  (SELECT *
   FROM TABLE_NAME
   ORDER BY clicks DESC LIMIT 0, 11) AS most_clicked
ORDER BY RAND() LIMIT 0, 3

它会以随机顺序返回3个最随机点击的11个随机行。