我正在创建一个存储students
数据的SQL表。对于名为roll_number
的列,我想生成两个值之间的随机数,比如4000和5000,并将其分配给每行的列,同时确保在卷号必须之前未使用该值是独一无二的。
任何人都可以给我一些我可以用来设置它的查询吗?我对SQL比较陌生。
答案 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 = ?