sql - 为每一行生成一个唯一的随机值

时间:2017-07-30 10:00:34

标签: mysql sql

我正在创建一个存储students数据的SQL表。对于名为roll_number的列,我想生成两个值之间的随机数,比如4000和5000,并将其分配给每行的列,同时确保在卷号必须之前未使用该值是独一无二的。

任何人都可以给我一些我可以用来设置它的查询吗?我对SQL比较陌生。

2 个答案:

答案 0 :(得分:2)

Select x.*, @i := @i + 1 randid from my_table, (Select @i:=4000) vars order by rand();

答案 1 :(得分:-1)

您可以创建和检查随机数是否已存在。

/// Get the unique roll_number
SELECT FLOOR(4000 + RAND() * 1000) AS roll_number
FROM student
WHERE roll_number NOT IN (SELECT roll_number FROM table)
LIMIT 1

UPDATE student set roll_number = ? WHERE student_id = ?