SQL 通過某一字段獲取排名排序後的名次

2021-08-29 04:42:55 字數 929 閱讀 7735

一、查出所有使用者和他們的經驗排名(sql語句如下)

/* 查出所有使用者和他們的經驗排名

* userid string 使用者id

* exp int 經驗

* @ranknum int 索引數,每條索引數就是排名數

* (select (@ranknum :=0)) b :這句是必不可少,宣告@ranknum索引值的初始值。)

二、查出某個使用者在所有使用者經驗中的排名(sql語句如下)

/* 查出某個使用者在所有使用者經驗中的排名

* userid string 使用者id

* exp int 經驗

* @ranknum int 索引數,每條索引數就是排名數

* u 查出所有使用者和他們的經驗排名

* (select (@ranknum :=0)) b :這句是必不可少,宣告@ranknum索引值的初始值。)

* @example 查詢使用者id為'10005'

*/select u.* from(select userid,exp,(@ranknum:= @ranknum+ 1) as rank from userlist,(select(@ranknum := 0)) b order by exp desc) u where u.userid= 10005;

排序之根據某一字段的應用排序實現

ds裡介紹了各種狂拽酷炫的排序演算法,但是都是基於單個元素,實際應用中對某條記錄的某個欄位來排序的情況層出不窮,如果還是原來的演算法直接用的話,恐怕無濟於事,於是我想怎麼根據某個欄位來排序,當時學c 的時候qsort,一直都用這個排序,有個compare函式比較糾結,裡面指標多,這個是排序的依據,在...

MySQL對某一字段去重

mysql有乙個去重關鍵字distinct,但是如果查詢的字段有很多,而想要去重的字段只是其中的某乙個,那麼僅僅用distinct是完成不了的,distince只能做到你查詢的那些欄位都是重複時才會去重。比如有一張使用者表的資料是這樣的 這裡我們本意是想查出一條資料,如果是這樣寫sql語句 sele...

按某一字段取無重覆記錄sql語句

測試資料 id name ic address 1 張三一 1234 bj 2 張三二 1234 bj 3 李四 12345 bj 4 李四 12345 bj 期望結果 id name ic address 2 張三二 1234 bj 4 李四 12345 bj 說明 按照ic取無重複的記錄,相同i...