Mysql 随机数

1)产生 0-10000 之间的随机数

SELECT RAND() * 10000
SQL

对应产生相应的整数

SELECT FLOOR(RAND() * 10000)
--CEILING    向上取整
--FLOOR    向下取整
SQL

2)使用md5()产生32位随机字符串

SELECT MD5(RAND() * 10000)
SQL

3)产生500-1000的随机数

  SELECT FLOOR( 500 + RAND() * (1000 - 500))
  SELECT NOW()
SQL

这一期 生成6位随机数

DELIMITER //
CREATE PROCEDURE generaCode()
   BEGIN
    DECLARE i int;
    SET i=0;
    WHILE i<2000 DO
    	INSERT INTO `rc_prod_developer`.`register_code`(`id`,`code`) VALUES (UPPER(UUID()),FLOOR( 100000 + RAND() * (999999 - 100000)));
    SET i=i+1;
    END WHILE;
   END
//
DELIMITER ;

CALL `rc_prod_developer`.generaCode();
SQL

其实是可以再优化的

由此引申出

CREATE PROCEDURE generCode()
   BEGIN
    DECLARE i int;
    SET i=0;
    WHILE i<2000 DO
    	INSERT INTO money(`money`) VALUES (FLOOR( 100000 + RAND() * (999999 - 100000)));
    SET i=i+1;
    END WHILE;
   END
;
SQL

查重

SELECT `money`.money,COUNT(*) FROM `money` GROUP BY money.money HAVING COUNT(*) > 1
SQL