PHP - Select 来自 table 的随机行

PHP - Select random row from table

我的 table 有大约 10k 行。如何查询最近添加的 10 行中的 select 随机 1 行?我有一个日期列,它是添加行时的日期时间。

这是我用来获取最后 10 行的方法:

SELECT id FROM mytable order by date desc LIMIT 10

我知道我可以做到 SELECT id FROM mytable ORDER BY RAND() LIMIT 1 但只是选择任意随机行,而不是从最后 10 行中选择。

一种方法使用子查询:

SELECT t.*
FROM (SELECT id
      FROM mytable 
      ORDER BY date DESC
      LIMIT 10
     ) t
ORDER BY rand()
LIMIT 1;

此版本使用 MySQL 的语法约定。

您可以在子查询中使用 select * 来获取整行。