第05章 MySQL排序與分頁

2022-09-10 03:15:10 字數 2270 閱讀 5239

order by 子句在select語句的結尾。

背景1:查詢返回的記錄太多了,檢視起來很不方便,怎麼樣能夠實現分頁查詢呢?

背景2:表裡有 4 條資料,我們只想要顯示第 2、3 條資料怎麼辦呢?

--前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條記錄,和「limit 4,3;」返回的結果相同。

select * from table 

limit(pageno - 1)*pagesize,pagesize;

約束返回結果的數量可以減少資料表的網路傳輸量,也可以提公升查詢效率。如果我們知道返回結果只有 1 條,就可以使用limit 1,告訴 select 語句只需要返回一條記錄即可。這樣的好處就是 select 不需要掃瞄完整的表,只需要檢索到一條符合條件的記錄即可返回。

在不同的 dbms 中使用的關鍵字可能不同。在 mysql、postgresql、mariadb 和 sqlite 中使用 limit 關鍵字,而且需要放到 select 語句的最後面。

select top 5 name, hp_max from heros order by hp_max desc
select name, hp_max from heros order by hp_max desc fetch first 5 rows only
select rownum,last_name,salary from employees where rownum < 5 order by salary desc;
需要說明的是,這條語句是先取出來前 5 條資料行,然後再按照 hp_max 從高到低的順序進行排序。但這樣產生的結果和上述方法的並不一樣。我會在後面講到子查詢,你可以使用

select rownum, last_name,salary

from (

select last_name,salary

from employees

order by salary desc)

where rownum < 10;

得到與上述方法一致的結果。

mysql 第05章 資料型別

2015 10 24 目錄 參考資料 1 唐漢明.深入淺出mysql 資料庫開發 優化與管理維護 第2版 m 北京 人民郵電出版社,2014 2 schwartz.高效能mysql 第3版 m 北京 電子工業出版社,2013 3 范德蘭斯.mysql開發者sql權威指南 m 北京 機械工業出版社,2...

第07章 容器 05

iterator 介面 實現 容器的遍歷操作 collection c new hashset hashset 容器 integer 100 c.add new name f1 f2 為該容器新增元素 c.add new name f2 f3 c.add new name f4 f5 c.add n...

第7章 排序

第7章 排序 任何通用的排序演算法均需要nlogn次比較 7.1 預備知識 略7.2 插入排序 插入排序思想 在已排序狀態插入新元素 插入排序的最壞情形和平均情形均為n的平方 7.3 一些簡單排序演算法的下界 通過比較和交換來進行排序的演算法本質上是消除序列中的逆序數,因此求解該演算法的時間複雜度時...