在SQL语句中生成唯一的CHAR(8)随机值

时间:2012-02-07 18:53:36

标签: mysql sql

我有这张桌子:
-id : primary key
-code : CHAR(8) unique

ANSI SQL(或MySQL)中是否有一种方法可以生成唯一的数字代码可以基于自动数字 id )在任何行数的单个SQL语句中? (让我们说100)

我已经在PHP的循环中执行此操作,但想知道它是否可以在纯SQL中完成。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码

select substr(UUID(), 1, 8)

答案 1 :(得分:1)

符合当前要求:

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 )