MySQL中的RAND()函数使用

MySQL中的RAND()函数使用,第1张

rand() 随机生成 0 - 1的浮点数 , 常与其他函数结合使用 ,比如 ceiling,floor,LPAD 等

如果要指定指定范围的随机整数的话,需要用这个公式FLOOR(i + RAND() * j),比如 

# 生成 7 - 11的随机数  SELECT FLOOR(7 + (RAND() * 5))

floor 地板取小于该值的最大整数 ,比如 0

mysql>select floor(1.23),floor(-1.23)

   1           -2 

ceiling 则相反,向上取整,取大于该值的最小整数 ,比如

SELECT CEILING(1.23)# 2

SELECT CEIL(-1.23)# -1

lpad 是左填充, 用法如下 :

LPAD(RAND()*31 + 1,2,'0')) # 取01-31的随机整数 ,保留两位,如果是一位,左边填0

既然是随机获取就肯定不能去实现平均啊,这是逻辑问题。

逻辑都有问题,mysql肯定就不会有支持的方法了。

当然这不表示不能通过人为控制实现平均。

比如:

保存每次获取的数据的唯一id,下次(每次)获取时用where not in语句排除之前获取过的数据。

在表里加个是否已获取的字段,每次获取完更新取出数据的这个字段,下次(每次)获取时用where获取没有更新过的数据。

注意:以上方法需要在数据获取完后初始化一下,不然以后就获取不到数据了。

当然还有很多其他方法,甚至可以不保存到数据库,总之就是每次获取没有被获取的数据,获取完后保存获取到的数据,这样就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8570476.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存