PHP+MYSQL查询结果上加一个排名序号且分页不间断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP+MYSQL查询结果上加一个排名序号且分页不间断相关的知识,希望对你有一定的参考价值。

数据表a中有b(排名指数)、c(好评数)两个字段,要实现:以b(排名指数)字段的数字从大到小排序,并且增加一个查询结果排名序号,且每页显示2条,分页后排名序号不间断!如图所示:图1是第一页,显示1、2,图二的排名要显示 3 ,但是显示的又是1,在翻页时,排名中断了,怎么解决呢?

参考技术A 翻页的时候 把页码传过去 然后根据页码直接把排名算出来
比如 第二页 page=2 然后一页两条 startrow = (2页* -1)*2 +1 = 3
输出的时候直接从3开始本回答被提问者和网友采纳
参考技术B 貌似翻页时是在SQL语句中重新查询得出的结果,那么借助页码那组变量来计算就是。 参考技术C 直接在数据库添加一个这样的字段就好了

问一个sql查询,如何给查询结果加上序号

SQL Server 下

SELECT ROW_NUMBER()  OVER(ORDER BY ID) ROWNU,A1 FROM TA1

解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。

SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。


在Oracle里,本就有rownum。可直接用:

SELECT rownum,A1 FROM TA1

其它的数据库可能有别的方案,不一而论。

参考技术A

SQL Server 下

1、SELECT ROW_NUMBER()  OVER(ORDER BY ID) ROWNU,A1 FROM TA1

解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。

SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。

在Oracle里,本就有rownum。可直接用:

1、SELECT rownum,A1 FROM TA1

其它的数据库可能有别的方案,不一而论。

参考资料

百度.百度[引用时间2018-1-4]

参考技术B oracle 有rownum 其它数据我不清楚

以上是关于PHP+MYSQL查询结果上加一个排名序号且分页不间断的主要内容,如果未能解决你的问题,请参考以下文章

分页不考虑结果的变化

当侧边栏在 single.php 中时,侧边栏分页不显示

SQL四大排名函数(ROW_NUMBERRANKDENSE_RANKNTILE)

SwiftUI Firestore 查询游标分页不起作用

php 查询结果分原网页显示并分页

PHP MySQL数据分页