CockroachDBを使用してSQLテーブルからランダムな行を選択するにはどうすればよいですか?たとえば、質問がたくさんあり、生徒が読み込むたびに別のシーケンスを生成したいとします。CockroachDBの `SELECT`からランダムな行を返します
3
A
答えて
4
CockroachDBではこれを効率的に行う方法はありません。非効率的な使用方法SELECT ... FROM ... ORDER BY random() LIMIT 1;
また、SELECT
ステートメントの結果をアプリケーション自体でシャッフルすることもできます。結果を配列(または他の集合体のような構造)に入れた後、そこで順序をシャッフルすることもできます。
0
もっと効率的な方法として、整数列randomid
を各行に追加することができます。挿入時にその列に乱数を入れてください。
SELECT ... FROM ... WHERE randomid >= ? ORDER BY randomid LIMIT 1;
:次に、あなたがランダムな列を取得することができますか?乱数です。
乱数のために余分なストレージが必要であり、randomid
列をインデックスする必要があることに注意してください。
結果を確実に得るために、このクエリを2回実行する必要があります(> =と<)。最初のクエリーで打ち出される確率は非常に低いですが。
関連する問題
- 1. SELECTクエリは各グループから1行を返します
- 2. SELECTは空の行を返します。
- 3. 2つのランダムな画像を配列から返します。
- 4. ランダムなオブジェクトを配列から削除して返します
- 5. RxJava:Observableからランダムなオブジェクトを正しく返します
- 6. sqlのSELECT文から返される行のセットからランダムな行を選択するクエリはありますか?
- 7. リストからランダムな値を返します
- 8. CockroachDBの行レベルの配布を制御しますか?
- 9. 1つのCockroachDBクラスタから別のCockroachDBクラスタへのデータのコピー
- 10. CockroachDB SQL CLIから終了
- 11. xmlからtsqlへのselect文は1行だけを返します
- 12. 繰り返しのない通知からのランダムなアクティビティ
- 13. mysqlクエリからランダムな行を出力します
- 14. CockroachDBクエリのログ
- 15. ランダム値を返します
- 16. select unix_timestamp( '')がnullを返すと、select unix_timestamp( '')がnullになるのはなぜfalseを返しますか?
- 17. 実行しているCockroachDBのバージョンは?
- 18. SQL Serverの関数を使用してランダムな行番号を返します。
- 19. データベースからランダムな行を選択
- 20. selectステートメントで行が返されない場合は、代替のselectステートメントを実行します
- 21. ランダム選択select
- 22. PostgreSQL:テーブルからselect count(*)を返します。
- 23. OrientDB - SelectクエリからJSONを返します
- 24. C++ Vectorのサブセットからランダムな値を返す
- 25. ワトソンの会話:コンテキスト配列からランダムなエントリを返す
- 26. MySQL SELECTクエリでは1行しか返さない
- 27. CockroachDBのGROUP BY操作から最大値を選択しますか?
- 28. ランダムな記事APIコールがユーザートークページを返していますか?
- 29. テーブルからのOracleランダム行
- 30. ByteArrayOutputStream.toByteArray()はランダムなバイトを返しますか?