gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 16:49:14 24 4
gpt4 key购买 nike

我需要从一个非常大的数据库中随机选择 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() 的作用吗?

请注意,我使用 Google BigQuery,因此性能问题在这里应该不是大问题。我只是想达到随机选择2000000条记录的要求。

最佳答案

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 行。

关于mysql - 如何从mysql数据库中选择随机记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52907120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com