gpt4 book ai didi

PostgreSQL:随机选择?

转载 作者:行者123 更新时间:2023-11-29 11:40:54 27 4
gpt4 key购买 nike

我正在使用 PHP 开发 PostgreSQL。

是否可以在 FROM table WHERE condition 列中选择特定数量的随机值/p>

代替

中选择 WHERE 条件

然后将它们转换成数组并使用array_rand()

(我不想使用这种方式,因为我将有数百万行并首先选择所有值,然后 array_rand() 可能会花费很多时间。)


假设我有一个这样的表:

   name    |   items
-----------+------------
Ben | {dd,ab,aa}
-----------+------------
David | {dd,aa}
-----------+------------
Bryan | {aa,ab,cd}
-----------+------------
Glen | {cd}
-----------+------------
Edward | {aa,cd}
-----------+------------
Aaron | {dd,aa}
-----------+------------
..... (many many more)

更新:

我需要在一列(或基本上是 10 个随机行)中选择符合条件(在本例中为 @> ARRAY[aa])的 10 个随机值,而无需顺序表扫描或其他耗时的东西。

order by random() 会花费很多时间,因为它必须处理每一行,所以我会改用更好的解决方案。

最佳答案

在 PostgreSQL 中,您可以 order by random() ,所以这应该是你想要的:

select name
from table
where items @>ARRAY['aa']
order by random()
limit 10;

关于PostgreSQL:随机选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10142154/

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