MySQL 中帶有加權結果的隨機選擇
此問題涉及從MySQL 表中選擇一個隨機條目,其中行基於「乘數”欄。使用 RAND() 的傳統方法不考慮此權重。
為了解決這個問題,使用者建議使用 ORDER BY -LOG(1.0 - RAND()) / Multiplier 的方法。此公式有效地調整隨機化過程,使加權行被選擇的機率更高。
此公式計算代表每行「隨機性」的值,其中較低的值表示較高的機率。透過將此值除以“乘數”,乘數較高的行實際上會獲得較低的“隨機性”,因此被選擇的機會較高。
此方法的缺點是無法停用透過將乘數設為 0 來獲得一行,因為這會導致除以零。但是,可以透過使用 WHERE Multiplier > 過濾行來克服此限制。 0 排除乘數為零的那些。
以上是如何在 MySQL 中選擇加權隨機行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!