Mysql如何查询某条记录在分页的第几页详析


前言在实践中我们会遇到这样的问题,知道某条记录的id,然后需要判断此条记录如果按照id进行排序分页,此条记录在第几页。今天这篇文章为大家提供一个思路。下面话不多说了,来一起看看详细的实现方法吧根据ID查询分页位置
根据ID来查询分页位置,比如按照ID的倒序排列,则可通过以下SQL查询出大于此ID记录数:示例中user为表名,5位待匹配的id。很显然,因为是倒序排序只需查找大于此id的记录数即可,如果是正序排列,则小于此id即可。开发云主机域名当查出count值之后,怎么计算当前记录位于第几页呢,这里以java代码示例计算:多维度排序定位
上面通过简单的ID进行排序还是比较好解决的,那么如果现在查询某条记录排序的维度不仅仅是ID,比如先按照年龄(age)进行倒序排序,如果age相同,则再跟进ID进行倒序排序。基本的sql语句如下:此时我们知道某条id为5,age为18的记录,如何确定出此条记录在多条件排序中的位置呢。首先,多条件排序的难度在于age相同的情况,如果age不相同,只需如下sql即可像《根据ID查询分页位置》一样定位出id的位置:这样就可以查询出来此组合排序age不相同时此条记录的位置,具体位置的算法同第一种情况。那么当age用重复的情况如何处理呢。当然,可以通过复杂的关联查询或子表查询来实现,这里通过另外一种方式,就是再查询一下age相同,并且id大于当前用户的记录条数:上面获得了age相同情况下,并且id大于5的记录,将第一步和第二步的统计结果相加,问题是不是又回到了《根据ID查询分页位置》的简单模式了,还是同样的算法可以算出当前记录位于第几页了。此种方案虽然查询了两次数据库,如果很好的建立索引,比关联查询或子查询要方便、简洁和高效一些。小结
以上是在实践中遇到类似问题的两个思考维度,希望能给大家带来一个突破,同时也希望大家提供更好的方案。好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对开发云的支持。

相关推荐: 管理Mysql用户的一些常用知识

下面讲讲关于管理Mysql用户的一些常用知识,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完管理Mysql用户的一些常用知识这篇文章你一定会有所受益。当前使用的user及host:添加用户mysql5以前版本直接使用 INSERT …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/10 09:28
下一篇 06/10 09:28

相关推荐