我有一个表格,想要使用1个MySQL查询生成随机唯一值并将其添加到表格中。
表格结构如下:
我尝试了。
但它生成的值不是唯一的...
备注:乘数=9仅为示例,使用这样的乘数很容易重现这个问题。
id | unique_id
1 | 1
2 | 5
3 | 2
4 | 7
等等
unique_id是无符号整数(10)
因此,我想每次用唯一的随机值(不是我的示例中的1、5、2、7)填写unique_id字段。
算法如下:
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仅为示例,使用这样的乘数很容易重现这个问题。