【问题标题】:PHP - Select random row from tablePHP - 从表中选择随机行
【发布时间】:2021-07-03 08:03:23
【问题描述】:

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

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

SELECT id FROM mytable order by date desc LIMIT 10

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

【问题讨论】:

  • 你已经尝试了什么?
  • 您的表中没有id
  • 编写获取最后 10 条添加记录的查询,然后将其用作随机排序结果并应用限制为 1 的查询中的子查询。
  • 试试ORDER BY RAND()
  • 这能回答你的问题吗? How to request a random row in SQL?

标签: php mysql sql phpmyadmin


【解决方案1】:

一种方法使用子查询:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多