gpt4 book ai didi

MySQL 可预测随机排序

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

我很惊讶我无法弄清楚这一点。

我目前正在以某种随机顺序从 MySQL 输出一个表。我这么说是因为有一个公式部分依赖于 RAND()。无论如何,我们可以假设我的问题的顺序实际上是随机的。

这一切都工作得很好,除了我想为“ session ”保持相同的顺序。我不希望它在积极使用数据时一直跳来跳去。我一直在试图弄清楚如何让 MySQL 再次生成相同的序列。

我知道你可以执行 RAND(N),其中 N 是种子,但据我所知,每次都是完全相同的数字。所以基本上如果我使用它,就不会有随机因素。

我想要的是一种可以将种子输入到 ORDER BY 中并始终获得可靠输出订单的方法。对于相同的种子,我将得到相同的顺序,如果我喂入不同的种子,它将是不同的随机顺序。

我能想到的最好办法是,我可以为每行创建一个带有 RAND 的附加表格单元格,并使用它进行排序。有几个问题:

  • 数据库使用了额外的内存。
  • 它不适用于多个用户,因为我需要为每个用户提供一个单独的列。

我必须考虑这一点,但我非常确定这里有一个聪明的解决方案,不需要我向数据库添加额外的列。有其他人遇到过需要做这样的事情吗?

最佳答案

正如您所提到的,您可以提供种子来生成随机数序列。生成随机数的算法对于相同的种子数返回相同的数字序列。例如;

SELECT Rand(1) AS rnd, CustomerId, CustomerName FROM Customers ORDER BY rnd

通过这样做,您将始终获得种子“1”的相同随机顺序。您可以提供 session ID 或一些类似的数字以获得相同的结果。

希望有帮助。

关于MySQL 可预测随机排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52486193/

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