我有这个表:-id : primary key
-code : CHAR(8) unique
在ANSI SQL(或MySQL)中,是否有一种方法可以在单个SQL语句中为任意数量的行生成唯一的数字代码(可以基于自动数字id)?(假设100)
我已经在PHP的循环中完成了这项工作,但不知道是否可以在纯SQL中完成。
要匹配当前要求:
SELECT floor(rand() * 90000000) + 10000000; # Will create an eight-digit random number
INSERT INTO table (code) VALUES (floor(rand() * 90000000) + 10000000);
UPDATE table SET code = floor(rand() * 90000000) + 10000000;
SELECT SUBSTRING( MD5( RAND( ) ), 25 )
或者基于自动增量:
SELECT SUBSTRING( MD5(id), 25 ) FROM table
或者更新:
UPDATE table SET code = SUBSTRING( MD5(id), 25 )
您可以使用以下代码
select substr(UUID(), 1, 8)