Mysql 如何从最近的20行中随机选择5行?

Mysql 如何从最近的20行中随机选择5行?,mysql,Mysql,我想从表中随机选择5行,但只从最近的20行中选择。我知道这两个单独的声明是这样的: SELECT * FROM table ORDER BY RAND() LIMIT 5 SELECT * FROM table ORDER BY date DESC LIMIT 20 如何组合这两条语句,以便从最近的20行中随机选择5行?谢谢。只需将它们嵌套: SELECT * FROM ( SELECT * FROM table ORDER BY date DESC LIMIT 20 ) ORDER

我想从表中随机选择5行,但只从最近的20行中选择。我知道这两个单独的声明是这样的:

SELECT * FROM table ORDER BY RAND() LIMIT 5
SELECT * FROM table ORDER BY date DESC LIMIT 20
如何组合这两条语句,以便从最近的20行中随机选择5行?谢谢。

只需将它们嵌套:

SELECT * FROM (
    SELECT * FROM table ORDER BY date DESC LIMIT 20
) ORDER BY RAND() LIMIT 5
使用嵌套的select

 SELECT foo.* FROM (SELECT * FROM table ORDER BY date DESC LIMIT 20 ) as foo 
         ORDER BY RAND() LIMIT 5
查找子查询

SELECT d.* FROM (SELECT * FROM table ORDER BY date DESC LIMIT 20) as d ORDER BY RAND() LIMIT 5;

顺便说一句,这是唯一有效的答案。没有使用“as foo”和“foo”。它不起作用。您知道为什么吗?@user1413341 MySQL要求所有派生表和子查询都有自己的别名。这是我尝试打字足够快,以与这两个竞争所得到的=P