mysql循環插入數據、生成隨機數及CONCAT函數


實現目標:一年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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM