
一、随机数
1.1、rand函数
RAND() 函数返回 0(包括)和 1(不包括)之间的随机数。
语法如下:
select rand(),rand(),rand();
结果如下:
1.2、随机整数
比如生成 [10,100] 的随机数,计算公式为:round(rand() * (m - n) + n)
语法如下:
SELECT round(rand() * (100 - 10) + 10);
有些小伙伴可能会用到 floor 函数,在计算闭包区间时,比如生成 [50,200] 的随机数,计算公式为:floor(rand() * (m - n + 1) + n),不要漏掉那个 +1 了,不然你取不到最大值。
语法如下:
SELECT floor(rand() * (200 - 50 + 1) + 50);
1.3、随机小数
比如生成 [60,100] 范围内的随机小数,计算公式为:round(rand() * (m - n) + n, 2),后面的数字 2 就是保留几位小数。
语法如下:
SELECT round(rand() * (100 - 60) + 60, 2);
1.4、更新随机值
比如随机给优惠券金额生成 [5,10] 范围内的随机小数
UPDATE tb_inf_coupon set freeAmount = round(rand() * (10 - 5) + 5);