gpt4 book ai didi

mysql - 去重复智能随机行查询?

转载 作者:行者123 更新时间:2023-11-29 13:59:13 25 4
gpt4 key购买 nike

经过一些研究,我发现了一个适合我需求的查询:它从表中随机返回 ID。 ID字段是自增的,所以不会有空洞。

SELECT `mydb`.`myTable`.id
FROM (SELECT Floor (Rand() * (SELECT Count(*)
FROM `mydb`.`myTable`)) num,
@num := @num + 1
FROM (SELECT @num := 0) a,
`mydb`.`myTable`
LIMIT 2000000) b,
`mydb`.`myTable`
WHERE b.num = `mydb`.`myTable`.id

我遇到的问题是目标表(myTable)包含30-400M记录,具体取决于情况。在 LIMIT 中,我想检索 2M 个随机选择的 ID,但是我得到了很多重复项(这是预期的)。

是否可以在删除重复查询的同时收到 2M 条记录?我想创建一个表并让它管理唯一值,但我得到的结果再次低于预期。

有什么想法吗?非常感谢!

最佳答案

您可以简单地随机排序行。没有重复,无论是否有漏洞都没关系。

SELECT 
id
FROM
mydb.myTable
ORDER BY
RAND()
LIMIT 2000000

关于mysql - 去重复智能随机行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349654/

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