【发布时间】:2017-06-12 17:45:08
【问题描述】:
PHP: 我知道 RAND() 函数会以随机顺序返回结果。但我想每天获得一次随机结果。因此,每天都会有不同的订单,但该订单应该在当天固定。 [SELECT * FROM Table_Name ORDER BY RAND();]
我怎样才能做到这一点,有什么办法吗?
【问题讨论】:
-
创建一个事件,在每天开始时运行您的 SELECT..ORDER BY RAND 并将其存储在会话中以便当天检索。第二天重复。
-
如果您希望它在某一天保持固定,您只需将它存储在与该天相关的某个地方。将日期和随机结果插入另一个表,也许?
-
可能有多种解决方案,但您可以运行 cront 作业来获取随机值并将按值顺序保存在数据库或文本文件中的某处。读取该值并对记录进行排序。每天上午 12:01,您可以根据您的要求生成随机 val 并保存。在您的查询中只需读取该值。
-
创建您自己的
random函数,它以当前日期和行ID 作为参数并返回一个伪随机数。