从最近20条记录中随机返回5条记录

时间:2011-08-04 17:21:11

标签: php mysql sql

我只需要以下

带有记录的表,我想从最后20条记录中随机返回5条记录(按照id desc排序)

所以我们如何快速做到这一点 谢谢你的帮助。

4 个答案:

答案 0 :(得分:9)

select * from
(
  select * from your_table 
  order by id desc limit 20
) as lastest_results
order by rand()
limit 5;

答案 1 :(得分:2)

使用内部查询返回最后20个,并使用外部查询随机选择其中的5个。这可能会很慢。

SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 20) t ORDER BY RAND() LIMIT 5;  

答案 2 :(得分:0)

这是一个很慢的方法,但它完成了JOB:

ORDER BY RAND()
LIMIT 5;

如果您使用的是大桌子,这会变得很慢, 您可以在这里阅读多种替代方案

Alternative to order by rand

答案 3 :(得分:0)

你需要像

这样的东西
SELECT * FROM table ORDER BY RAND() LIMIT 5;

如果您有一个时间参数来对它们进行排序,例如最后20条记录,那么请使用它。

SELECT * FROM table ORDER BY insert_time DESC, RAND() LIMIT 5;

OR

SELECT * FROM table ORDER BY id DESC,RAND()LIMIT 5;