私はPHPでPostgreSQLに取り組んでいます。
列FROMテーブルWHERE条件で特定の数のランダム値を選択することは可能ですか?
それ以外の
列を選択FROMテーブル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)
アップデート:
@> ARRAY[aa]
そして、シーケンシャル テーブル スキャンや時間のかかるものを使用せず に、条件 (この場合は ) に一致する列 (または基本的には 10 個のランダム行) 内の 10 個のランダムな値を選択する必要があります。
order by random()
すべての行を処理する必要があるため、多くの時間がかかるため、代わりにより良いソリューションを使用します。