在页面刷新时改组MySQL记录

时间:2011-10-31 10:40:26

标签: php mysql

我正在一个网站上工作,我从数据库中获取两种类型的优惠(最佳优惠和热卖)。我将记录限制为1.因此,只有一个热门报价记录和一个最佳报价记录应该向用户查看。现在我必须在页面刷新中随机播放每个优惠。也就是说,当任何一个刷新页面时,下一个热门报价(来自数据库)应该替换之前的热卖,并且应该是最佳报价。

2 个答案:

答案 0 :(得分:2)

将其设为随机,否则您必须保持页面上显示的优惠状态才能获得下一个优惠。 查询下方将有所帮助。

SELECT * from tbl_offers ORDER BY RAND() LIMIT 0,1;

答案 1 :(得分:1)

ORDER BY RAND() LIMIT 1添加到MySQL查询的末尾IFF你的表很小。

如果它很大,那么这是一种非常低效的方法(因为它仍然评估每一行)所以你最好不计算行数:

SELECT MAX(id), COUNT(*) FROM table

然后选择一个随机ID($id = rand(1,$count);),然后选择该行

SELECT * FROM table WHERE id = $id

如果存在已删除的行(并且此最后一个命令不返回任何内容),则再次选择一个随机ID并再次运行上一个命令。第一个查询中的COUNT(*)是您可以确保至少有一行。

这对于有大量已删除行的表格不适用,而且假设您有auto_increment字段。