php - 显示当天的项目

标签 php sql mysql random

我希望创建一个函数,从 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/

相关文章:

php - 从 PHP 脚本登录后如何将 MySql 列从 -1 更新到 1

php - 如何在 Codeigniter 中将行置于顶部

sql - mysql查询复杂分组

sql - 如何在 postgres 查询中按正则表达式分组

c# - 搜索时 SQL 查询出错

php - 在 MySQL 中限制结果?

mysql - 查询更新问题

php - 简单的mysql选择

php - 如何编写正则表达式来匹配不以短语结尾的行?

mysql - 在数据库中选择 5 个最近的唯一条目