如何使用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();