首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL PHP随机排序了一段时间?

MySQL PHP随机排序了一段时间?
EN

Stack Overflow用户
提问于 2018-08-16 04:46:02
回答 2查看 459关注 0票数 2

例如,假设你想要每10分钟随机得到一个结果。有没有一种使用ORDER BY RAND()实现这一点的方法

$fetch = mysqli_query($conn, "
  SELECT * 
    FROM food 
    JOIN food_images ON food.size = food_images.size 
    ORDER BY RAND()
"); 

我也在使用JOIN,担心这会不会影响答案。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-16 05:08:13

我前面没有MySQL服务器,所以这大部分都是猜测,但您可以尝试如下所示:

您可以生成一个每十分钟只更改一次的数字,方法是将系统时间(以秒为单位)除以十分钟内的秒数,然后转换为整数:

$seed = (int) (time() / 600);

然后将这个值作为参数传递给MySQL的RAND()函数,作为RNG的种子,您应该会得到一个每十分钟更改一次的可重复序列:

$stmt = mysqli_prepare($conn, 'SELECT ... ORDER BY RAND(?)');
mysqli_stmt_bind_param($stmt, 'i', $seed);
票数 2
EN

Stack Overflow用户

发布于 2018-08-16 05:03:51

你可以这样做:

SELECT *, rand(time_to_sec(current_time()) / 600) as ord
  FROM food 
  JOIN food_images ON food.size = food_images.size 
  order by ord

RAND()函数的参数是种子。其中的表达式每10分钟才会更改一次。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51866180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档