我有一個表,並希望使用1個mysql查詢來給它賦予隨機唯一值。 表結構等:隨機唯一的Mysql ID
id | unique_id
1 | 1
2 | 5
3 | 2
4 | 7
等
UNIQUE_ID是整數(10)無符號
所以我想fullfill UNIQUE_ID場與唯一的隨機值(不爲1,5,2,7我的例如)每次。
Algorytm是:
1. Get 1 unique random value, which will not have duplicates in unique_id field
2. Create new row with unique_id = result of 1 query
我試圖
SELECT FLOOR(RAND() * 9) AS random_number
FROM table
HAVING random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1
,但它不產生唯一值..
注:乘數= 9給出只是舉例,它很容易用這種乘數重現這個問題
UNIQUE_ID必須查詢 – freento
之後獨一無二的 - 或全部 - 只是改變了限制條款。您問題中的示例僅返回一個ID。刪除限制並獲得每個ID的唯一編號(來自ID集合 - 這對於0-8示例顯然不起作用)。 –
他們爲什麼是獨一無二的? select from order by rand() limit 1 將返回重複次數soometimes – freento