如何从数据库中随机的取得一条未被读取的条目?
以mysql数据库为例,我希望在一个页面上显示数据库中的某一个条目,要求每次刷新页面可以自动从还没有显示过的条目中随机的选取一条进行显示,也就是说显示过的条目就不再显示了...
以mysql数据库为例,我希望在一个页面上显示数据库中的某一个条目,要求每次刷新页面可以自动从还没有显示过的条目中随机的选取一条进行显示,也就是说显示过的条目就不再显示了。有没有什么好的办法和思路可以实现这种要求?
展开
2个回答
展开全部
你这个情况,需要解决两个问题点
1、随机取得
2、未被读取
随机取得很简单,在 mysql 里面,使用 ORDER BY rand() 实现随机排序。
然后你再 LIMIT 0, 1 来随机获取 一条就可以了。
例如:
select * FROM 表名 LIMIT 0, 1;
至于 一条未被读取的条目。
这个恐怕要你在 页面那里判断了。
例如第一次访问的时候,认为是 都没有显示过的。
就是
select * FROM 表名 LIMIT 0, 1;
假如获取的结果 为 15
那么刷新页面,下一次执行的 SQL 为
select * FROM 表名 WHERE 列名 NOT IN (15) LIMIT 0, 1;
假如获取的结果为 255
那么刷新页面,下一次执行的 SQL 为
select * FROM 表名 WHERE 列名 NOT IN (15, 255) LIMIT 0, 1;
然后以此类推,直到没有数据。
1、随机取得
2、未被读取
随机取得很简单,在 mysql 里面,使用 ORDER BY rand() 实现随机排序。
然后你再 LIMIT 0, 1 来随机获取 一条就可以了。
例如:
select * FROM 表名 LIMIT 0, 1;
至于 一条未被读取的条目。
这个恐怕要你在 页面那里判断了。
例如第一次访问的时候,认为是 都没有显示过的。
就是
select * FROM 表名 LIMIT 0, 1;
假如获取的结果 为 15
那么刷新页面,下一次执行的 SQL 为
select * FROM 表名 WHERE 列名 NOT IN (15) LIMIT 0, 1;
假如获取的结果为 255
那么刷新页面,下一次执行的 SQL 为
select * FROM 表名 WHERE 列名 NOT IN (15, 255) LIMIT 0, 1;
然后以此类推,直到没有数据。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询