MySQL生成隨機數

生成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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章