sql中round(),floor(),ceiling()的实用场景

1、场景1:分页问题,业务需求根据数据中的order字段(int类型)进行分组,需求是order值在[1,20]为第一组,[21,40]第二组,[41,60]第三组。。。以此类推。

本来打算在代码中进行判断处理,但是总共数据有多少并不确定,可能这批数据最大的order为39,下一批就是393939,如果在代码中判断,无疑效率不高而且代码很丑。后来想到了在数据库查询阶段对order数值进行加工形成一个分组标记,项目中使用的是ceiling()函数。下边将边界条件的round(),floor(),ceiling()三个函数值做下简单记录:

例如order = 81,99,100这几个数据都应该位于第5组

注意:1、根据业务需求,选用函数类型,分页问题向上取整。分页经验公式:page_no = (data_num - 1)/page_size + 1就是向上取整的意思。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值