gpt4 book ai didi

mysql - 使用 MySQL RAND() 来避免 ORDER BY RAND()

转载 作者:可可西里 更新时间:2023-11-01 07:39:56 26 4
gpt4 key购买 nike

我在每次插入时将 RAND() 值存储在表中,然后运行以下查询以从表中获取随机行。

select id from test where random_value >= RAND() LIMIT 5;

表中共有 456 行,但随机值仅选取前 20-25 条记录。我在上面的查询中运行了很多次,但从未得到 id > 21

您可以在 here 中找到查询和结果。

最佳答案

您的 RAND() 在每次循环后都会发生变化。您需要在 SELECT 之前修复它:

SET @r := RAND();
SELECT id, @r
FROM test
WHERE random_value >= @r
LIMIT 5

但这不是一个好的解决方案,因为在随机数的情况下,您总是会从数据库中获得相同的行。

为了节省性能,您可以使用 this方法。我试过了,它有效。

关于mysql - 使用 MySQL RAND() 来避免 ORDER BY RAND(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773226/

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