如何生成随机字符并插入MySQL?

时间:2011-11-21 04:43:55

标签: mysql sql

  

重复:
  Inserting random characters to MYSQL Database

如何生成包含5个随机字符的100条记录,并使用查询插入数据库。

我想插入此表:

codes
  id (auto-increment)
  codes

4 个答案:

答案 0 :(得分:15)

试试这个 -

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代码,并从中生成随机字符串。 我不能说这种方式很优雅,但它有效; - )

答案 1 :(得分:4)

INSERT INTO codes_tbl (codes) VALUES (SUBSTRING(MD5(RAND()) FROM 1 FOR 5));

应该照顾它。

答案 2 :(得分:0)

在MySql中你可以这样做吗

insert into table ( SUBSTRING(MD5(RAND()) FROM 1 FOR 10) , field2 , field3) , ( SUBSTRING(MD5(RAND()) FROM 1 FOR 10) , field2 , field3) , .........

如果你想用Php做这件事。你可以 Check This Link

此外,您可以查看Stackoverflow已经提出的以下问题

1. Random Number- MySql

2. Mysql insert random unique 8 chars

答案 3 :(得分:0)

你可以尝试一下吗?:

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();

它应该为codes值插入codes 100个随机值。