关于现场随机抽奖的问题.

fsleo 2018-07-13 02:17:36
现场由主持人抽奖,4万个订单,金额满 100元,有一次抽奖机会。
比如:A客户交了300元,B客户100元,C客户50元,那么:
A = 3 次机会
B = 1 次机会
C = 0 没有机会

我之前的算法是:
从数据库中读取符合条件的订单客户
把客户按订单规则存入数组,如:
$user = array('a','a','a','b');;
$isNum = mt_rand(0,count($user) - 1);
$isLottery = $user[$isNum];

但是现在这个数据非常大,如果用这个算法,感觉不适合。
请问有没有什么好的想法和思路
...全文
389 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsleo 2018-07-13
  • 打赏
  • 举报
回复
引用 2 楼 shinger126 的回复:
这个用数据库去算要快得多,为啥要在前端算啊


这个我是在php后端算.但是我不知道怎么写这个sql,我问题一些人.说 rand() 及分组.但是我不知道怎么写.

比如: select customer_id,floor(SUM(price/100)) from orders where price >= 100 group by customer_id order by rand()

但是怎么按一订单多的机会越多来抽呢?
shinger126 2018-07-13
  • 打赏
  • 举报
回复
这个用数据库去算要快得多,为啥要在前端算啊
卖水果的net 2018-07-13
  • 打赏
  • 举报
回复
直接除,再取整数,。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧