SELECT * FROM category LIMIT 3, 5\x0d\x0aLIMIT 3, 5 這一句是關鍵3代表第幾條數(shù)據(jù)之后開始,5代表差出幾條結束(這里以mysql中的category表) \x0d\x0a顯示10條:\x0d\x0aSELECT * FROM category LIMIT 0,10 \x0d\x0a或者\x0d\x0aSELECT * FROM category LIMIT 10

成都創(chuàng)新互聯(lián)公司服務項目包括鎮(zhèn)坪網(wǎng)站建設、鎮(zhèn)坪網(wǎng)站制作、鎮(zhèn)坪網(wǎng)頁制作以及鎮(zhèn)坪網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,鎮(zhèn)坪網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到鎮(zhèn)坪省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
MYSQL沒有SELECT TOP的語法,你得用用LIMIT
select * from 表名 limit m,n;
從m開始,取n條
學生表名為:student, 單科成績的字段為:subject。學生名字為:name
查詢單科成績前十:mysql語句為:select * from student order by subject desc limit 10;
查詢總分成績前十:mysql語句為:select sum(subject) subject,name from student group by name order by subject desc limit 10;
注:
select sum(subject) subject,name
這句的意思是:sum(subject) subject 把單科成績加總用subject 來命名(就是總成績),name就是一個字段,這里只有兩個字段。
group by name order by subject : group by name 的意思按照名字這一欄來分組,當然,學生成績表名字有可能是一樣的,按照學號是最準確的,這里只是舉個例子。
order by subject ?這句的意思是按照總分成績排序,這里的subject 是前面重命名總分的意思。
select sum(subject) as countsubject,name from student group by name order by countsubject desc limit 10;
擴展資料:
學生成績表常用sql
1. 在表中插入符合主鍵
[sql]
/*成績表*/
CREATE TABLE SC
(
Sid INT REFERENCES Student(Sid), /*學生學號*/
Cid INT REFERENCES Course(Cid), /*課程編號*/
Score INT NOT NULL, /*課程分數(shù)*/
PRIMARY KEY(Sid,Cid) /*將學生學號和課程編號設為復合主鍵*/?
)
2. 查詢各科成績最高分,最低分以及平均分
[sql]
SELECT c.Cname, MAX(s.Score) AS Max, MIN(s.Score) AS Min, AVG(s.Score) AS Average?
FROM Course c JOIN SC s ON c.Cid = s.Cid?
GROUP BY c.Cname?
/*此處應注意,若不按照c.Cname進行分組,SQL語句會報錯,c.Cname在SELECT語句中不合法,因為它并未出現(xiàn)在聚合函數(shù)中也沒有出現(xiàn)在GROUP BY語句中*/
3. 查詢平均成績大于80分的學生姓名以及平均成績
[sql]
SELECT Sname, AVG(Score) AS Average FROM Student JOIN SC?
ON Student.Sid=SC.Sid?
GROUP BY Sname
HAVING AVG(Score)80?
/*以聚合函數(shù)為條件進行刪選只能在HAVING語句中進行,WHERE語句不支持聚合函數(shù)*/
4.?按總分為學生排名,總分相同名次相同
[sql]
SELECT RANK() OVER (ORDER BY SUM(ss.Score) DESC) AS Rank, s.Sname,
ISNULL(SUM(ss.Score),0)?
FROM Student s LEFT JOIN SC ss?
ON s.Sid = ss.Sid?
GROUP BY s.Sname?
ORDER BY SUM(ss.Score) DESC
/*RANK()是SQL Server的一個built-in函數(shù),語法為
RANK() OVER ( [ partition_by_clause ] order_by_clause ).*/
5. 查詢總分在100至200之間的學生姓名及總分
[sql]
SELECT s.Sname,SUM(ss.Score) FROM Student s JOIN SC ss ON s.Sid=ss.Sid
GROUP BY s.Sname HAVING SUM(ss.Score) BETWEEN 100 AND 200
這里記錄一個問題
在MySQL中,我們要查看前3條記錄的話,是使用limit
簡單的分頁也可以使用力limit來完成
這都比較常見,如果我們想要獲取數(shù)據(jù)的前10%呢?
在SQLServer中,我們可以直接使用top 10 percent 就可以了,但在MySQL中,我們得另想辦法
前10%的數(shù)據(jù),我們得知道數(shù)據(jù)一共有多少,那我們就知道該獲取多少條記錄了,然后還得知道記錄的行號。
@row_num這個變量,是按行來的,所以我們再where條件中使用的時候,他是最后1條記錄的行號,及總記錄數(shù)
總記錄數(shù)乘以50%,就是前50%的記錄數(shù),這樣,我們就獲取了前X%數(shù)據(jù),做完收工。
CREATE?PROCEDURE?GetScRank()
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
用游標效率應該還行吧.
select?*?from?(
select
tablename_tmp.*,
@rownum:=@rownum+1?,
if(@pyear=tablename_tmp.year,@rank:=@rank+1,@rank:=1)?as?rank,
@pyear:=tablename_tmp.year?
from?(
select?*?from?tablename?order?by?year?asc
)
tablename_tmp?,
(select?@rownum?:=0?,?@pyear?:=?null?,@rank:=0)?a
)
result?where?rank?=10
;
你這里其他條件判斷是前十條記錄嗎?上面是每年各取十條。
標題名稱:mysql怎么查詢前十 sql查詢前10
當前URL:http://chinadenli.net/article40/hpedho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、自適應網(wǎng)站、用戶體驗、網(wǎng)站策劃、Google、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)