MySQL排序ORDER BY与分页LIMIT,SQL,减少数据表的网络传输量,完整详细可收藏
文章目錄
- 1、ORDER BY排序
- 2、LIMIT分頁
1、ORDER BY排序
1.1 排序規則
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend):降序
ORDER BY 子句在SELECT語句的結尾。
1.2 單列排序
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ; #默認升序 SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ; #指定降序1.3 多列排序
SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; #按照部門id升序,工資降序可以使用不在SELECT列表中的列排序。
在對多列進行排序的時候,首先排序的第一列必須有相同的列值,才會對第二列進行排序。如果第一列數據中所有值都是唯一的,將不再對第二列進行排序。
2、LIMIT分頁
2.1 背景
背景1:查詢返回的記錄太多了,查看起來很不方便,要實現分頁查詢。
背景2:表里有 4 條數據,我們只想要顯示第 2、3 條數據。
2.2 實現規則
分頁原理:所謂分頁顯示,就是將數據庫中的結果集,一段一段顯示出來需要的條件。MySQL中使用 LIMIT 實現分頁
格式:
第一個“位置偏移量”參數指示MySQL從哪一行開始顯示,是一個可選參數,如果不指定“位置偏移量”,將會從表中的第一條記錄開始(第一條記錄的位置偏移量是0,第二條記錄的位置偏移量是1,以此類推);第二個參數“行數”指示返回的記錄條數。
--前10條記錄: SELECT * FROM 表名 LIMIT 0,10; 或者 SELECT * FROM 表名 LIMIT 10; --第11至20條記錄: SELECT * FROM 表名 LIMIT 10,10; --第21至30條記錄: SELECT * FROM 表名 LIMIT 20,10;MySQL 8.0中可以使用“LIMIT 3 OFFSET 4;”,意思是獲取從第5條記錄開始后面的3條記錄,和“LIMIT4,3;”返回的結果相同。
分頁顯式公式:(當前頁數-1)*每頁條數,每頁條數
SELECT * FROM table LIMIT(PageNo - 1)*PageSize,PageSize;注意:LIMIT 子句必須放在整個SELECT語句的最后!
使用 LIMIT 的好處:約束返回結果的數量可以減少數據表的網絡傳輸量 ,也可以 提升查詢效率 。如果我們知道返回結果只有1條,就可以使用 LIMIT 1 ,告訴 SELECT 語句只需要返回一條記錄即可。這樣的好處就是 SELECT 不需要掃描完整的表,只需要檢索到一條符合條件的記錄即可返回。
總結
以上是生活随笔為你收集整理的MySQL排序ORDER BY与分页LIMIT,SQL,减少数据表的网络传输量,完整详细可收藏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坐马桶的正确姿势
- 下一篇: SELECT执行过程,MySQL聚合函数