MySQL テーブルからランダムに重み付けされたエントリを選択する
ここでのタスクには、ちょっとした工夫を加えて、MySQL テーブルからランダムなエントリを選択することが含まれます。 - エントリは、「乗数」列の値に基づいて重み付けされます。乗数 0 は重み付けなしを示し、1 は重みを 2 倍、2 は 3 倍、などとなります。
ORDER BY を使用した重み付きランダム選択
SELECT と RAND を使用しますが、 () はランダム選択の一般的なアプローチであり、重み付けは考慮されません。ただし、ORDER BY を利用することで、目的の重み付きランダム性を実現することが可能になります。
使用される式 -LOG(1.0 - RAND()) / Multiplier により、重み付きランダム化が生成されます。 [乗数] が増加すると、式の値が減少し、ランダム化プロセスにおけるエントリの重みが効果的に増加します。
考慮事項と最適化
この設定に注意することが重要です。エントリを無効にするために乗算器を 0 にすると、ゼロ除算エラーが発生する可能性があります。この問題を回避するには、WHERE 句を使用して乗数が 0 のエントリを除外することをお勧めします (WHERE Multiplier > など)。 0.
以上がMySQL テーブルから重み付けされたランダム エントリを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。