mysql 创建函数

------------------------------------------------function get_random------------------------------------------------------------

#生成制定位数的整数

DELIMITER $$

USE `test`$$
DROP FUNCTION IF EXISTS `get_random`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `get_random`(len INT) RETURNS INT(11)
    DETERMINISTIC
BEGIN
DECLARE powerof BIGINT DEFAULT 1;
DECLARE result INT;
IF len IS NOT NULL THEN 
IF len >= 18 THEN 
SET powerof = POW(10 , 18); 
ELSE 
SET powerof = POW(10 , len); 
END IF; 
END IF; 
SELECT ROUND(ROUND(RAND(),len) * powerof) INTO result; 
    RETURN result;    
END$$

DELIMITER ;

------------------------------------------------function rand_zone------------------------------------------------------------

#生成区间内的整数

DELIMITER $$
USE `test`$$
DROP FUNCTION IF EXISTS `rand_zone`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `rand_zone`(_min INT , _max INT ) RETURNS INT(11)
    DETERMINISTIC
BEGIN
DECLARE minVal INT DEFAULT 0;
DECLARE maxVal INT DEFAULT POW(2,31);
DECLARE limitVal INT DEFAULT POW(2,31);
DECLARE result INT DEFAULT 0;
IF _min IS NOT NULL THEN 
SET minVal = _min;
ELSE 
SET minVal = 0;
END IF; 

IF _max IS NOT NULL THEN 
SET maxVal = _max;
ELSE 
SET maxVal = POW(2,31);
END IF; 

#select (maxVal - minVal) into limitVal;
#Select (limitVal + 1) into limitVal ;

#select FLOOR (minVal + (RAND() * limitVal)) into result;
SELECT FLOOR (minVal + (RAND() * maxVal - minVal +1 )) INTO result;
    RETURN result;    
END$$


DELIMITER ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值