从MySQL数据库中选择随机条目

时间:2011-05-07 13:20:03

标签: php mysql

如何使用PHP从MySQL数据库中选择一个随机条目?

我想选择作者,作者文字和日期?

4 个答案:

答案 0 :(得分:6)

SELECT Author, AuthorText, Date FROM table ORDER BY RAND() LIMIT 1

答案 1 :(得分:1)

ORDER BY rand() LIMIT 1

将对表中的所有行进行排序,这可能非常慢。

更好的解决方案:假设您的表具有通常的主键自动增量字段,在min(id)和max(id)之间生成一个rendom数字并选择最接近的id。

它不会像“真正的”随机选择那样随机,因为删除了大洞之后的id将有更高的被选择概率。但如果您的桌子很大,则需要50μs而不是2秒......

SET @t = (SELECT FLOOR(a + (b-a)*rand()) FROM (SELECT min(id) as a, max(id) as b FROM table)
SELECT * FROM table WHERE id>@t ORDER BY id LIMIT 1;

答案 2 :(得分:1)

答案 3 :(得分:0)

您可以通过随机排序&限制为1行如下:

select 
  author, authortext, date 
from bookstable 
order by rand()
limit 1