MySQL获取随机数
2016-04-06 11:18
423 查看
如何通过MySQL在某个数据区间获取随机数?
MySQL本身提供一个叫rand的函数,返回的v范围为0 <= v < 1.0。
介绍此函数的MySQL文档也介绍道,可以通过此计算公式FLOOR(i + RAND() * (j – i)),获取i <= v < j的随机数字v。
附文档链接:http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand
为了书写、调用方便,写一个函数返回随机数字,注意,此函数为了遵应个人习惯,是使用FLOOR(i + RAND() * (j – i + 1))这样的公式,随机数v的范围为i <= v <= j,而非i <= v < j。
![](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
比如,要获取1-9的随机数,如此调用即可:
![](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/ 本博文为学习、笔记之用,以笔记记录作者学习的知识与学习后的思考或感悟。学习过程可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
MySQL本身提供一个叫rand的函数,返回的v范围为0 <= v < 1.0。
介绍此函数的MySQL文档也介绍道,可以通过此计算公式FLOOR(i + RAND() * (j – i)),获取i <= v < j的随机数字v。
附文档链接:http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand
为了书写、调用方便,写一个函数返回随机数字,注意,此函数为了遵应个人习惯,是使用FLOOR(i + RAND() * (j – i + 1))这样的公式,随机数v的范围为i <= v <= j,而非i <= v < j。
![](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
CREATE FUNCTION rand_num ( start_num INTEGER, end_num INTEGER ) RETURNS INTEGER BEGIN RETURN FLOOR(start_num + RAND() * (end_num - start_num + 1)); END;
比如,要获取1-9的随机数,如此调用即可:
![](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
select rand_num(1, 9);
作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/ 本博文为学习、笔记之用,以笔记记录作者学习的知识与学习后的思考或感悟。学习过程可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
相关文章推荐
- PowerDesigner 的mysql PDM 的COMMENT注释
- Windows 下 mysql 自动备份
- MySQL创建用户与授权方法
- nagios使用check_mysql监控mysql
- mysql数据库分库分表(Sharding)
- mysql 打开慢查询日志
- MySQL索引原理与慢查询优化
- 异常:mysql 1062 –Duplicate entry '1' for key 'PRIMARY'
- mysql 字符集相关特性
- MySQL小技巧
- MySQL高速缓存
- MySQL储存过程详解
- MySQL查询优化
- MySQL mysqldump用法
- MySQL常用的函数
- MySQL数据类型详解
- MySQL主从复制配置
- MySQL知识点系统总结
- MySQL 配置优化
- Mysql命令大全