考慮以下幾點:隨機選擇在具有相同值的多個實例SQL
user_id weight
1 2
2 5
是否有可能同時使用的權重影響其ID被選擇的機率隨機選擇一個用戶ID查詢?
換句話說,在這種情況下,是有一個查詢會看該表中,然後在隨機從以下組中選擇1個用戶ID:
[UserID_001, UserID_001, UserID_002, UserID_002, UserID_002, UserID_002, UserID_002]
使UserID_002具有5/7被選擇的機會,並且UserId_001有2/7的選擇機會。
這就像每個用戶在抽獎中有多張門票,User_001有2張門票,User_002有5張門票。用SQL查詢可以做這樣的事情嗎?或者我需要使用其他方法?
在此先感謝!
它會更容易了很多在應用程序級別執行此操作 - 否則,請查看[here](http://stackoverflow.com/questions/2417621/mysql-select-random-entry-but-weight-towards-certain-entries) –
Hi @pala_ thanks for你的評論,我讀了你給的鏈接,我現在是testi在我的數據庫中查詢以下查詢:''SELECT * FROM mytable ORDER BY(RAND()* weight)LIMIT 1;''這似乎是每次給出一個隨機ID,我想知道我是否可以問,對你正確嗎? – Emily
@pala_實際上,在做了一些測試之後,看起來這個查詢起作用了:''SELECT * FROM mytable ORDER BY -LOG(RAND())/ weight LIMIT 1;'' – Emily