[英]Random number in mysql
我有一個拼貼簽名的題詞 mysql 表。 該表根據學生想要學習的簽名數量重復了學生的文檔。 我想為每個學生分配一個隨機數,所以我使用這個:
SET @rnd := 0;
UPDATE `productData` SET `randCol`= (@rnd := @rnd + 1)
ORDER BY RAND();
但是由於“文檔編號”(文檔字段)被重復,所以我最終給同一個人(相同的文檔編號)提供了不同的隨機數
結果是這樣的:
randomNum-document-field1-field2-field3-field4-field5
190-1780859-75-1035-CURRICULAR-0-3
91-1780859-75-1954-OPTATIVA-25-0
7154-1780859-75-1025-CURRICULAR-0-3
6424-1780859-75-1910-OPTATIVA-LIBRE-0
3561-1780859-75-1948-OPTATIVA-60-0
6028-1780859-75-2105P-CURRICULAR-0-4
4936-1780859-75-2100P-CURRICULAR-0-4
6787-1780859-75-2095-CURRICULAR-0-3
4392-1780859-75-4170-CURRICULAR-0-3
1858-1780859-75-1932-OPTATIVA-30-0
3350-1780859-75-3140-CURRICULAR-0-4
3974-1780859-75-2190-CURRICULAR-0-4
2676-1780859-75-2115P-CURRICULAR-0-4
1527-1921177-93-2115P-CURRICULAR-0-4
6822-1921177-93-2095-CURRICULAR-0-3
540-1921177-93-2105P-CURRICULAR-0-4
3770-1921177-93-2100P-CURRICULAR-0-4
3128-2020703-269-3140-CURRICULAR-0-4
4386-2020703-269-4160-CURRICULAR-0-3
5328-2762533-249-3020P-CURRICULAR-0-28
6356-2971526-355-1954-OPTATIVA-25-0
1287-3102055-55-1021-CURRICULAR-0-25
1699-3102055-55-2095-CURRICULAR-0-3
4759-3102055-55-2190-CURRICULAR-0-4
4420-3102055-55-3140-CURRICULAR-0-4
695-3584576-153-4160-CURRICULAR-0-3
但我希望對同一個文檔使用相同的隨機數。 假設隨機數“190”應該分配給“1780859”文檔等等......
任何幫助將非常受歡迎......
非常感謝您的寶貴時間...
一種方法是使用join
並預先計算每個document
的值:
UPDATE productData pd
(SELECT document, row_number() over (order by rand()) as seqnum
FROM productdata
group by document
) d
ON pd.document = d.document
SET pd.randCol = d.seqnum;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.