《MySQL如何使用臨時(shí)變量來(lái)排名?》要點(diǎn):
本文介紹了MySQL如何使用臨時(shí)變量來(lái)排名?,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
最近公司由于做運(yùn)動(dòng)記錄排行榜,然后總結(jié)出來(lái)如下3中排行方式
值相同, 排名分歧;
值相同, 排名相同, 排名值連續(xù)遞增;
值相同,排名也相同; 排行增長(zhǎng)不持續(xù);
那么用數(shù)據(jù)庫(kù)查詢(xún)?nèi)绾螌?shí)現(xiàn)以上操作呢? 小編以MySQL 來(lái)實(shí)現(xiàn)上述操作.以學(xué)生表,按學(xué)生年齡這一條件對(duì)其操作
表 student
創(chuàng)建表布局
插入學(xué)生測(cè)試數(shù)據(jù)
主要思路:
對(duì)目標(biāo)列排序
設(shè)置一個(gè)臨時(shí)變量作為rank值, 每次查詢(xún)遞增1
方案一: (值相同, 排名分歧)
SQL(年齡倒序,可以改成ORDER BY age DESC)
辦法二:值相同, 排名相同, 排名值持續(xù)遞增
思路:
(暫存上一條記錄的age (@prevRank).如果當(dāng)前age與其相等,使用與前一記錄相同的排名;不然排名加一,并更新@prevRank)
后果圖如下所示:
辦法三:值相同,排名也相同; 排名值遞增不連續(xù)(常見(jiàn))
想法:
(增加一個(gè)變量(@incRank)用于記錄序號(hào)(類(lèi)似方案一).如果當(dāng)前age與上一條記錄相同,使用與前一記錄相同的排名(類(lèi)似辦法二),否則使用序號(hào)(@incRank))
后果圖:
《MySQL如何使用臨時(shí)變量來(lái)排名?》是否對(duì)您有啟發(fā),歡迎查看更多與《MySQL如何使用臨時(shí)變量來(lái)排名?》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/7113.html