mysql循环插入数据、生成随机数及CONCAT函数
程序员文章站
2022-04-23 19:39:49
实现目标:一年12个月,每个月插入一条数据,score为1 5的随机数 循环语句: WHILE …… DO …… END WHILE 循环语句: LOOP……END LOOP DELIMITER ; CREATE PROCEDURE test_insert() BEGIN DECLARE y TIN ......
实现目标:一年12个月,每个月插入一条数据,score为1-5的随机数
循环语句: WHILE …… DO …… END WHILE
DELIMITER ; CREATE PROCEDURE test_insert() BEGIN DECLARE y TINYINT DEFAULT 1; WHILE y<13 DO INSERT INTO app_sign(`user_id`, `score`, `createdate`) VALUES ('1', FLOOR( 1 + RAND() * 5), CONCAT('2018-',CAST(y AS CHAR),'-07') ); SET y=y+1; END WHILE ; COMMIT; END; CALL test_insert(); DROP PROCEDURE IF EXISTS test_insert;
循环语句: REPEAT …… UNTIL …… END REPEAT
DELIMITER ; CREATE PROCEDURE test_insert() BEGIN DECLARE y TINYINT DEFAULT 1; REPEAT INSERT INTO app_sign(`user_id`, `score`, `createdate`) VALUES ('1', FLOOR( 1 + RAND() * 5), CONCAT('2018-',CAST(y AS CHAR),'-07') ); SET y=y+1; UNTIL y >= 12 END REPEAT; COMMIT; END; CALL test_insert(); DROP PROCEDURE IF EXISTS test_insert;
循环语句: LOOP……END LOOP
DELIMITER ; CREATE PROCEDURE test_insert() BEGIN DECLARE y TINYINT DEFAULT 1; lp:LOOP INSERT INTO app_sign(`user_id`, `score`, `createdate`) VALUES ('1', FLOOR( 1 + RAND() * 5), CONCAT('2018-',CAST(y AS CHAR),'-07') ); SET y=y+1; IF y > 12 THEN LEAVE lp; END IF; END LOOP; COMMIT; END; CALL test_insert(); DROP PROCEDURE IF EXISTS test_insert;
生成随机数
生成0-5的随机数
SELECT RAND() * 5
最大不会超过5,SELECT FLOOR(RAND() * 5)
生成整数的值是0,1,2,3,4。
生成的随机整数是1,2,3,4,5的话,语句如下SELECT FLOOR(1 + RAND()*5)
CONCAT拼接字符串
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。