我有以下内容
表中有记录,我想从最近20条记录中随机返回5条记录(按id desc排序)
那么我们如何才能快速完成它谢谢你的帮助。
select * from
(
select * from your_table
order by id desc limit 20
) as lastest_results
order by rand()
limit 5;
使用内部查询返回最近的20个,并使用外部查询随机选择其中的5个。这可能比较慢。
SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 20) t ORDER BY RAND() LIMIT 5;
这是一个缓慢的方法,但它完成了工作:
ORDER BY RAND()
LIMIT 5;
如果你正在使用一个大的表,这可能会变得非常慢,你可以在这里阅读到多种选择
按rand排序
你需要像
SELECT * FROM table ORDER BY RAND() LIMIT 5;
如果你有一个时间参数来排序,例如最近的20条记录,那么使用这个。
SELECT * FROM table ORDER BY insert_time DESC, RAND() LIMIT 5;
或