zoukankan      html  css  js  c++  java
  • mysql 定义function rand

    MySQL获取随机数

     

    如何通过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。

    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的随机数,如此调用即可:

    select rand_num(1, 9);
    作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/ 本博文为学习、笔记之用,以笔记记录作者学习的知识与学习后的思考或感悟。学习过程可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
  • 相关阅读:
    Ynoi 杂题选做
    CSP-S2021 浙江 游记
    P6272 [湖北省队互测2014]没有人的算术
    P5206 [WC2019]数树
    P5405 [CTS2019]氪金手游
    LOJ6679 Unknow
    LOJ3040 「JOISC 2019 Day4」合并
    P6122 [NEERC2016]Mole Tunnels
    三维凸包
    三,四元环计数
  • 原文地址:https://www.cnblogs.com/nele/p/5094915.html
Copyright © 2011-2022 走看看