【发布时间】:2011-11-21 04:43:55
【问题描述】:
如何生成包含 5 个随机字符的 100 条记录并通过查询插入数据库。
我想插入到这个表中:
codes
id (auto-increment)
codes
【问题讨论】:
如何生成包含 5 个随机字符的 100 条记录并通过查询插入数据库。
我想插入到这个表中:
codes
id (auto-increment)
codes
【问题讨论】:
INSERT INTO codes_tbl (codes) VALUES (SUBSTRING(MD5(RAND()) FROM 1 FOR 5));
这应该会解决它。
【讨论】:
md5 给你一个只包含十六进制数字的字符串,所以代码将非常有限。
INSERT INTO codes_tbl (codes) VALUES (SUBSTRING(MD5(RAND()) FROM 1 FOR 5));
试试这个 -
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 代码,并从中生成一个随机字符串。 我不能说这种方式很优雅,但它确实有效;-)
【讨论】:
在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 上已经提出的以下问题
【讨论】:
你可以试试这个吗?:
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。
【讨论】: