如何查询随机行?

发布于 2024-08-23 11:08:18 字数 395 浏览 2 评论 0原文

可能的重复:
MySQL Order By Rand() 的替代方案

查询的有效方法是什么以下场景中的随机结果集:

  • 从多个随机行中选择一个随机行。
  • 从许多行中选择(至少)n 个随机行。
  • 以随机顺序选择所有行。

对 MySQL 特别感兴趣,但这可能是尝试其他任何东西的原因。

(主键是一个密集的 AUTO_INCRMENT 整数。)

Possible Duplicate:
Alerternative to MySQL Order By Rand()

What is an efficient way to query for random result sets in the following scenarios:

  • Select a single random row from many.
  • Select (at least) n random rows from many.
  • Select all rows in a random order.

In particular interested in MySQL, but might be a reason to try out anything else.

(Primary key is a dense AUTO_INCREMENT integer.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月棠 2024-08-30 11:08:18

编辑:正如 OMG Ponies 指出的: 这根本无法扩展。 谢谢,天哪。

尝试使用

ORDER BY RAND()

所以...

SELECT * FROM `table` ORDER BY RAND() LIMIT 1
SELECT * FROM `table` ORDER BY RAND() LIMIT n
SELECT * FROM `table` ORDER BY RAND()

Edit: As OMG Ponies pointed out: This doesn't scale at all. Thanks, OMG.

Try using

ORDER BY RAND()

So...

SELECT * FROM `table` ORDER BY RAND() LIMIT 1
SELECT * FROM `table` ORDER BY RAND() LIMIT n
SELECT * FROM `table` ORDER BY RAND()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文