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