如何使用MySQL生成随机字符并插入?
重复:如何使用MySQL生成随机字符并插入?,mysql,sql,Mysql,Sql,重复: 如何生成包含5个随机字符的100条记录并通过查询插入数据库 我想在此表中插入: codes id (auto-increment) codes 在MySql中,你可以这样做 insert into table ( SUBSTRING(MD5(RAND()) FROM 1 FOR 10) , field2 , field3) , ( SUBSTRING(MD5(RAND()) FROM 1 FOR 10) , field2 , field3) , ......... 如果你想
如何生成包含5个随机字符的100条记录并通过查询插入数据库 我想在此表中插入:
codes
id (auto-increment)
codes
在MySql中,你可以这样做
insert into table ( SUBSTRING(MD5(RAND()) FROM 1 FOR 10) , field2 , field3) , ( SUBSTRING(MD5(RAND()) FROM 1 FOR 10) , field2 , field3) , .........
如果你想用Php来做。你可以
此外,您可以检查Stackoverflow上已经提出的以下问题
试试这个-
SELECT CONCAT(
CHAR( FLOOR(65 + (RAND() * 25))),
CHAR( FLOOR(65 + (RAND() * 25))),
CHAR( FLOOR(65 + (RAND() * 25))),
CHAR( FLOOR(65 + (RAND() * 25))),
CHAR( FLOOR(65 + (RAND() * 25)))
) random_string;
此查询生成从“A”到“Z”的ASCII代码,并从中生成随机字符串。
我不能说这种方式很优雅,但它确实有效;-) 你能试试这个吗
CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertOneHundredRandomCodes` ()
BEGIN
DECLARE ctr INT DEFAULT 0;
hundred_loop:LOOP
SET ctr = ctr + 1; -- increment
-- insert command here
INSERT INTO codes (codes)
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 5) AS codes;
IF ctr = 100 THEN -- check if we should stop
LEAVE hundred_loop;
END IF;
END LOOP hundred_loop;
END//
创建该过程,然后运行以下命令:
CALL InsertOneHundredRandomCodes();
它应该在
code
100个随机值中插入code
值。除了md5
给您一个只包含十六进制数字的字符串,因此代码将非常有限。您好,我无法运行代码。有个错误。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“”附近使用的正确语法括号存在问题:INSERT INTO codes_tbl(code)值(SUBSTRING(MD5(RAND())FROM 1 for 5))代码>
CALL InsertOneHundredRandomCodes();