在Mysql中教你如何获取数据的排名

发布于 2016-07-10 15:33:09 分类:技术笔记 阅读(8235)  

如果你想知道数据库某一条数据的排名的话,看这里就对了。对于商品可以知道商品的位置,比较在第几页,第几个。

可以快速定位商品位置。

我们主要是利用Mysql的行号来解决。

SELECT @rowno:=@rowno+1 as rowno,r.* from t_article r,(select @rowno:=0) t

如果有按照某个字段排序,行号会不规则排列,换成先排序,外层加上行号会更加合适。

SELECT @ROWNO := @ROWNO + 1 AS ROWNO, T.*
  FROM (SELECT T.ARTICLE_TITLE, T1. NAME, T.ARTICLE_CREATEDATE
          FROM T_ARTICLE T
          LEFT JOIN T_ARTICLE_TYPE T1
            ON T.TYPEID = T1. NAME
         WHERE T.ARTICLE_TITLE LIKE '%博士%'
         ORDER BY ARTICLE_CREATEDATE DESC) T,
       (SELECT @ROWNO := 0) T3
 ORDER BY ROWNO

如果你想知道商品的排名的话,思路是这样的。

比如你每页是显示12个。

  1. //每页十二条
  2. $num = 36;//假定这是行号
  3. if(intval($num/12) == 0){
  4. $strRank = "第1页的第{$num}辆车";
  5. $page = 1; //页数
  6. }else{
  7. if($num%12==0){
  8. $page = intval($num/12);
  9. $sum = 12;
  10. }else{
  11. $page = intval($num/12)+1;
  12. $sum = $num%12;
  13. }
  14. $strRank = "第{$page}页的第{$sum}辆车";
  15. }
  16.