• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Mysql 生成固定位数的随机数

Mysql 生成固定位数的随机数

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了 Mysql等相关知识,希望本文的分享对您有所帮助
项目中需要动态随机生成一些固定位数的随机数,如8位,5位等。

之前看到的写法是这样

ROUND(ROUND(RAND(),5)*100000)

这样写不太准确,有几率出现4位的情况,Rand() 函数是取 0 ~ 1(无限接近) 的随机函数

如果 某此随机数取出的 是 0.05321

那么这样转化出来的就是 5321 ,只有4位。

如果能用一个函数包装一下,取完数值后发现位数不对的时候,就补位进去就比较完美了。

下面是我改的一个函数,不过缺点是 生成的函数位数不能超过20位。当然改一改也是可以了。

DELIMITER $$

USE `prvecard`$$

DROP FUNCTION IF EXISTS `getRand`$$

CREATE DEFINER=`PECARD`@`%` FUNCTION `getRand`(counts INTEGER) RETURNS VARCHAR(20) CHARSET utf8
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 ;

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05sqlserver Union和SQL Union All使用方法
  • 2018-12-05MySQL中添加新用户权限的实例详解
  • 2018-12-05有关连接与断开的文章推荐7篇
  • 2018-12-05MySQL联合索引用法示例_MySQL
  • 2018-12-05MySQL配置文件my.cnf中文详解附mysql性能优化方法分享
  • 2017-09-02Mysql修改默认数据目录
  • 2018-12-05详细介绍xtrabackup的备份原理
  • 2017-05-11mysql增加新用户无法登陆解决方法
  • 2018-12-05SQL SERVER 文件和文件组
  • 2018-12-05slave have equal MySQL server UUIDs

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL Server 数据库管理常用的SQL和T-SQL语句
    • mysql多个TimeStamp设置的方法解读
    • InnoDB引擎数据库主从复制同步新的分享
    • 如何使用JSP连接MySQL数据库的方法
    • PHP学习散记 2012_01_07(MySQL)
    • mysql触发器实现oracle物化视图示例代码
    • mysql 左连接、右连接和内连接
    • Transfer在MySQL双主同步架构中的应用
    • MYSQL数据库连接偶尔连不上,几秒后又自动恢复
    • mysql同步复制搭建方法指南详细步骤

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有