首頁 > 資料庫 > mysql教程 > 如何從 MySQL 表中選擇加權隨機條目?

如何從 MySQL 表中選擇加權隨機條目?

Linda Hamilton
發布: 2024-12-03 22:33:13
原創
274 人瀏覽過

How to Select a Weighted Random Entry from a MySQL Table?

MySQL 從表中選擇隨機加權條目

當前的任務涉及從MySQL 表中選擇隨機條目,但有一點不同— 根據「乘數」列中的數值對​​條目進行加權。乘數 0 表示不加權,1 表示權重加倍,2 表示權重增加三倍,依此類推。

使用 ORDER BY 進行加權隨機選擇

儘管使用 SELECT 和 RAND ()是隨機選擇的常用方法,它不考慮權重。然而,透過利用 ORDER BY,可以實現所需的加權隨機性。

所使用的公式 -LOG(1.0 - RAND()) / Multiplier 可產生加權隨機性。隨著Multiplier的增加,表達式的值減小,有效增加隨機過程中條目的權重。

注意事項和最佳化

需要注意的是,設定乘數為 0 以停用條目可能會導致除以零錯誤。為了避免此問題,建議使用 WHERE 子句過濾掉 Multiplier 為 0 的條目,例如 WHERE Multiplier > 0.

以上是如何從 MySQL 表中選擇加權隨機條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板