MySQL: 乗算器を使用した加重ランダム選択
ユーザーは、MySQL テーブルからランダム エントリを選択するために重み付けに基づいて行う必要があるシナリオに遭遇しました。 「乗数」列。典型的なアプローチには SELECT と RAND() の利用が含まれますが、重み付けの側面をどのように達成するかという疑問が生じました。
これに対処するために、以前のソリューションでは、-LOG(1.0 - RAND() の値による順序付け) が提案されていました。 ) を乗数で割ります。このアプローチにより、正確な重み付けが正常に生成されました。ただし、潜在的な欠点が明らかになりました。オプションを無効にするために乗数を 0 に設定すると、ゼロで除算することになります。
代わりに、WHERE Multiplier > を使用して、乗数が 0 のエントリをフィルタリングして除外します。 0 条件が考えられます。これにより、無効なエントリがランダムな選択プロセスに含まれないことが保証されます。
以上がMySQL で 'Multiplier' 列を使用して加重ランダム選択を実装し、ゼロによる除算エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。