DELIMITER $$
USE `gem`$$
DROP FUNCTION IF EXISTS `getRand`$$
CREATE FUNCTION `getRand`(counts INTEGER) RETURNS VARCHAR(20)
BEGIN
DECLARE sTemp VARCHAR(20);
DECLARE sTempCounts INTEGER;
SET sTemp = CONCAT( ROUND(ROUND(RAND(),counts)*(POW(10,counts))),'');
IF(CHAR_LENGTH(sTemp)<counts) THEN
SET sTempCounts = counts - CHAR_LENGTH(sTemp);
SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),''),sTempCounts));
END IF;
RETURN sTemp;
END$$
USE `gem`$$
DROP FUNCTION IF EXISTS `getRand`$$
CREATE FUNCTION `getRand`(counts INTEGER) RETURNS VARCHAR(20)
BEGIN
DECLARE sTemp VARCHAR(20);
DECLARE sTempCounts INTEGER;
SET sTemp = CONCAT( ROUND(ROUND(RAND(),counts)*(POW(10,counts))),'');
IF(CHAR_LENGTH(sTemp)<counts) THEN
SET sTempCounts = counts - CHAR_LENGTH(sTemp);
SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),''),sTempCounts));
END IF;
RETURN sTemp;
END$$
DELIMITER ;
以上是自定义函数的随机生产功能!多少位自己调用时指定即可,如下:
SELECT CONCAT(159,getRand(8));--此处自定义引用使用8位;同样也可以自定义其他位数,但是不能超过20位;
DELIMITER $