如何在MySql中插入随机数

5

我是MySQL的新手,需要将10000个随机的两位数插入表格中。有没有简单的方法来完成这个任务?


可能是[MYSQL从列表中插入随机值]的重复问题(https://dev59.com/9HM_5IYBdhLWcg3wn0hO)。 - D'Arcy Rittich
编写一个带有循环的存储过程。 - Devart
2个回答

18

按照这里的描述,使用RAND()函数。要生成10到99之间的2位随机数,请使用FLOOR(10 + (RAND() * 90))


1
我在我的答案中使用了你的公式。+1 给你,这样我就可以避免侵犯版权!!! - RolandoMySQLDBA

4
试试这个:
DELIMITER $$
CREATE PROCEDURE random_fill( IN cnt INT )
BEGIN

    fold: LOOP

         IF cnt < 1 THEN
             LEAVE fold;
         END IF;

        INSERT INTO foo ( bar ) VALUES ( 9 + CEIL( RAND() * 90 ) );

        SET cnt = cnt - 1;
    END LOOP fold;

END$$   
DELIMIMTER ;

使用方法:

CALL random_fill(10000);

你需要修改的是这一行代码:
INSERT INTO foo ( bar ) VALUES ( CEIL( RAND() * higher ) );

用数据库中存在的内容替换foobar。可以创建一个过程,在其中也提供表格和行名称作为参数,但需要在查询中使用CONCAT,看起来很不正常且丑陋。


1
我建议在其中加入一个事务。没有它,10万个插入操作中有22k超时,而有了它,在我的开发机器上,10万个插入操作只需要4.047秒。 - Andrew Grothe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接