我希望创建一个函数,从 mySQL 表中获取随机项目,但让我们将返回的项目保留为“当天的项目”。换句话说,昨天是“当天的项目”的项目不应再次显示,直到所有其他项目都显示为当天的项目。
关于如何以优雅的方式做到这一点有什么建议吗?
谢谢
最佳答案
添加一个 bool 列“UsedAsItemOfTheDay
”,设置为 false
(0)。当选择项目时更新为 true。从拣货过程中排除已使用的元素。
SELECT * FROM `table`
WHERE UsedAsItemOfTheDay = 0
ORDER BY RAND() LIMIT 1;
(注意:这不是在 MySql 中返回随机行的最快方法;在巨大的表上它会很慢)
另请参阅:quick selection of a random row from a large table in mysql
关于php - 显示当天的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234692/