生成15位以下隨機數的函數:
DELIMITER $$ CREATE FUNCTION `getRand`(counts INTEGER) RETURNS varchar(20) CHARSET utf8 BEGIN DECLARE sTemp VARCHAR(20); DECLARE sTempCounts INTEGER; SET sTemp = 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; IF (CHAR_LENGTH(sTemp)>counts) then SET sTemp = RIGHT(sTemp,counts); END IF; return sTemp; END$$ DELIMITER ;
取數:
mysql> select getRand(4); +------------+ | getRand(4) | +------------+ | 9878 | +------------+ 1 row in set (0.00 sec)