程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 關於mysql排序的問題實例解析

關於mysql排序的問題實例解析

編輯:MySQL綜合教程


關於mysql排序的問題實例解析   今天面試一家公司, 問了一個關於取出分數排名的問題: 如表結構如下: name score zhang 50 wang 30 li 80 wu 20   要求按score輸出排名。 這個問題我以前做過的, 要求在紙上寫出來,我說有個電腦一下就出來了... (要求在紙上寫sql 真坑爹啊) 於是回家後不到一分鐘在電腦上就寫出來了 ..., 備忘如下:
  SELECT @i:=@i+1 ,name,score FROM `tb`, (select @i:=0) as i ORDER BY score desc;   結果輸出   @i:=@i+1 name score 1 li 80 2 zhang 50 3 wang 30 4 wu 20   ==================================================== 讓別人在紙張上寫程序, 只能發揮一半的功力啊, 面試者要反思啊。。。 =================補充分割線=====================
此題的另外一個解法: set @i:=0;  www.2cto.com   select if(ISNULL(@i),@i:=1,@i:=@i+1) , name, score from tb order by score desc ;
需兩條sql,第一條把@i 重置為0(不重置的話,下次運行時@i會用上一次的結果), 第二條再取排名
看實際應用了。。。    
  作者 spamer

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved