新聞中心
mysql 查詢每門(mén)成績(jī)的前十名
CREATE?PROCEDURE?GetScRank()
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、棲霞ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的棲霞網(wǎng)站制作公司
BEGIN
DECLARE?SigDone?INT?DEFAULT?0;
DECLARE?Cno_?BIGINT;
DECLARE?Cur1?CURSOR?FOR?SELECT?DISTINCT?Cno?FROM?Score;
DECLARE?CONTINUE?HANDLER?FOR?SQLSTATE?'02000'?SET?SigDone?=?1;
OPEN?Cur1;
TRUNCATE?scResult;
FETCH?Cur1?INTO?Cno_;
WHILE?NOT?SigDone?DO
INSERT?INTO?scResult?(Sno,Cno,Sc)?(SELECT?DISTINCT?Sno,Cno,Sc?FROM?Score?WHERE?Cno?=Cno_?ORDER?BY?Sc?DESC?LIMIT?10);
COMMIT;
FETCH?Cur1?INTO?Cno_;
END?WHILE;
CLOSE?Cur1;
END
用游標(biāo)效率應(yīng)該還行吧.
Mysql數(shù)據(jù)查詢in的時(shí)候如何排序
前幾天工作上遇到一個(gè)問(wèn)題,在mysql數(shù)據(jù)查詢的時(shí)候,使用的是in條件,而結(jié)果需要根據(jù)in來(lái)進(jìn)行排序,當(dāng)時(shí)嘗試了幾次都沒(méi)成功,后來(lái)在度娘的幫助下,找到了解決辦法:
select * from table_name where id in (6,2,1,10,5,7..)
查詢的結(jié)果和in中的順序并不一致,也就是說(shuō)在批量查詢時(shí),mysql的查詢并不是按照in中的值得順序來(lái)查詢的。那怎么才能保證和in查詢中的順序相同呢?
查詢了資料發(fā)現(xiàn)有兩種方式可以對(duì)in查詢的結(jié)果進(jìn)行排序。一種是order by find_in_set,另外一種是order by substring_index
1、select * from table_name where id in (6,2,1,10,5,7..) order by find_in_set(id,'6,2,1,10,5,7');
2、select * from table_name where id in (6,2,1,10,5,7..)?order by substring_index('6,2,1,10,5,7',id,1);
mysql排行榜取top10
因?yàn)閙ysql里沒(méi)有top方法,使用top會(huì)報(bào)語(yǔ)法的錯(cuò)誤,
mysql提供了limit方法,可以達(dá)到同樣的效果。
select?*?from?table?order?by?id?desc?limit?10;
如何使用mysql選取前10條記錄后,然后對(duì)記錄進(jìn)行排序
select?*?from?(select?*?from?TABLE?limit?10)?aa?
order?by?name;
其實(shí),一般來(lái)說(shuō),最好還是先排序,再進(jìn)行行數(shù)限制。
mysql排序
由于mysql沒(méi)有row_number()方法,只能通過(guò)其它方法來(lái)進(jìn)行排序,以下為使用變量來(lái)實(shí)現(xiàn)排序
示例1:以col1分組,col2正序排序
示例2:以col1分組,col2倒序排序
關(guān)于mysql排序
在執(zhí)行查詢結(jié)果時(shí),默認(rèn)情況下查詢結(jié)果無(wú)序排列。但我們有時(shí)需要對(duì)數(shù)據(jù)按一定規(guī)則進(jìn)行排序。這時(shí)可以通過(guò)ORDER BY子句來(lái)實(shí)現(xiàn)這個(gè)功能。語(yǔ)法如下:
SELECT?*,column [alias],...?FROM?table
[WHERE?condition(s)]
[ORDER BY column[ASC|DESC]];
默認(rèn)是ASC指定的升序排列,DESC用來(lái)指定降序排列。
1、升序排序:
使用ORDER BY子句時(shí),默認(rèn)情況下數(shù)據(jù)是按升序排列的,故可以用ASC關(guān)鍵字指點(diǎn)升序排列,或者不指定,默認(rèn)就是升序,顯示效果是一樣的,如下圖:
2、降序排序:
當(dāng)需要查詢結(jié)果降序排列時(shí),必須在排序后指定DESC關(guān)鍵字。如下圖是查看職員薪水的降序排列:
標(biāo)題名稱:mysql怎么排序前十,mysql查詢前10條記錄并排序
本文路徑:http://www.dlmjj.cn/article/dsihgog.html