PHP+mysql 實現排名並查詢指定用戶排名

PHP+mysql 實現排名並查詢指定用戶排名

情形如下:
  對用戶表裏的所有用戶 的積分大小 【point 】實現排名  並 得到某一個用戶的積分的具體排名


1、首先,對所有用戶進行排名

$sql = "SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point FROM user ORDER BY `point` DESC) AS t ";

$sql = "SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point FROM user ORDER BY `point` DESC) AS t ";

註釋:1、 SELECT @rownum := 0:表示對rownum賦初始值0
           2、@rownum := @rownum + 1:表示對rownum加1,語句中會從1開始,每一行往下都自動加1

上述代碼會根據user表中的point從大到小進行排序。


2、得到某個特定用戶的排名
  原理:把上步得到的數據看做一張表,根據uid 來查詢特定用戶的排名

$sql = "SELECT b.uid,b.rownum FROM(SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT uid,point FROM user ORDER BY `point` DESC) AS t) AS b WHERE b.uid = {$uid} ";

查詢結果:{"uid":"300462","rownum":"10"} 
其中 rownum 即對應該用戶的排名

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章