【问题标题】:How to generate random chars and insert with MySQL? [duplicate]如何生成随机字符并使用 MySQL 插入? [复制]
【发布时间】:2011-11-21 04:43:55
【问题描述】:

重复:
Inserting random characters to MYSQL Database

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

我想插入到这个表中:

codes
  id (auto-increment)
  codes

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    INSERT INTO codes_tbl (codes) VALUES (SUBSTRING(MD5(RAND()) FROM 1 FOR 5));
    

    这应该会解决它。

    【讨论】:

    • 除了md5 给你一个只包含十六进制数字的字符串,所以代码将非常有限。
    • 你好,我无法运行代码。出错了。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 '' 附近使用的正确语法
    • 括号有问题:INSERT INTO codes_tbl (codes) VALUES (SUBSTRING(MD5(RAND()) FROM 1 FOR 5));
    【解决方案2】:

    试试这个 -

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

    【讨论】:

      【解决方案3】:

      在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

      【讨论】:

        【解决方案4】:

        你可以试试这个吗?:

        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 值插入100 个随机值到codes

        【讨论】:

          猜你喜欢
          • 2014-11-03
          • 2018-01-06
          • 2015-06-17
          • 1970-01-01
          • 2017-11-05
          • 1970-01-01
          • 2014-02-09
          • 2012-11-07
          • 2015-12-30
          相关资源
          最近更新 更多