
如果要指定指定范围的随机整数的话,需要用这个公式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获取没有更新过的数据。
注意:以上方法需要在数据获取完后初始化一下,不然以后就获取不到数据了。
当然还有很多其他方法,甚至可以不保存到数据库,总之就是每次获取没有被获取的数据,获取完后保存获取到的数据,这样就可以了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)