如何使用PHP从MySQL数据库中选择一个随机条目?
我想选择作者,作者文字和日期?
答案 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