gpt4 book ai didi

postgresql - 即使某些行被删除,使用种子值进行随机排序是否会再次返回相同的集合?

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

我正在编写一个分页 API,通过设置随机种子值来提供随机结果。除非用户想要随机播放结果,否则结果将相同,但如果用户想要随机播放,我将重新创建种子值,以便返回不同的记录集。

我的问题是,如果我从数据库中删除一条记录,即使种子相同,结果也会因为元素长度的变化而不同。有没有办法让它在记录被删除后仍然存在?

示例查询:

set seed to 0.1; select * from table order by random();

最佳答案

我不会通过 random() 进行排序,因为无法正确控制它。

如果您想要一个可靠但看似随机的顺序,您可以使用哈希函数:

SELECT * FROM atable ORDER BY hashint4(id);

这在 DELETE 之后是稳定的,因为哈希值不会改变。

如果您需要不同的“随机”顺序,以可重复的方式生成一个随机整数并使用

... ORDER BY hashint4(id + 42)

关于postgresql - 即使某些行被删除,使用种子值进行随机排序是否会再次返回相同的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56649606/

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