如何从mysql数据库中选择随机记录

3pvhb19x  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(432)

我需要从一个非常大的数据库中随机选择2000000条记录。我看了前面的问题。所以请不要把这个问题标为重复。我需要澄清。大多数答案建议使用 ORDER BY RAND() 功能。所以我的问题是:

SELECT DISTINCT no
FROM table
WHERE name != "null"
ORDER BY RAND()
LIMIT 2000000;

我希望每一张唱片都是随机选择的。我不确定我是否理解 ORDER BY RAND() 效果在这里。但我担心它会选择一个随机记录,比如说3498,然后从那里继续选择,比如说,下一个记录是:3499、3500、3501等等。我希望每个记录都是随机的,而不是从一个随机记录开始排序。
如何随机选择2000000条记录?你能简化一下吗 ORDER BY RAND() 做?
请注意,我使用googlebigquery,因此性能问题在这里应该不是什么大问题。我只想达到随机选择2000000条记录的要求。

jutyujz0

jutyujz01#

SELECT x
FROM T
ORDER BY RAND()

相当于

SELECT x
FROM (
  SELECT x, RAND() AS r
  FROM T
)
ORDER BY r

查询为每行生成一个随机值,然后使用该随机值对行进行排序。如果包含限制:

SELECT x
FROM T
ORDER BY RAND()
LIMIT 10

这将从表中随机选择10行。

相关问题