MySQL索引查詢limit?offset及排序order?by用法
引言
“ 這是MySQL系列筆記的第九篇,文章內容均為本人通過實踐及查閱資料相關整理所得,可用作新手入門指南,或者個人知識點查閱。”
select 語句獲取數據我們可以通過 where 語句來限制條件。
但是如果限制條件之后還是很多數據,比如說 一萬條,但有時候我們只是想看看數據的基本情況,不需要一萬條數據,看不完,而且這一萬條數據返回到客戶端的時間也很長,沒必要,那么這就需要我們使用 limit 和 offset 來限制返回的數量。
使用 limit 和 offset 來限制返回的數量
1、limit
limit 限制數量,后面跟一個整數 n,表示只返回符合條件的 n 條數據
比如說返回 book 表的前 5 條數據:
select?*?from?book?limit?5;
2、offset
offset 是偏移量,和 limit 連用,比如說 limit 3 offset 5
表示舍棄前5條數據, 然后返回之后的 3條數據
可以理解成分頁的用法,比如說每頁數量為 10 條,然后我們分別獲區(qū)第1、2、3、4頁的數據:
select?*?from?book?limit?10?offset?0; select?*?from?book?limit?10?offset?10; select?*?from?book?limit?10?offset?20; select?*?from?book?limit?10?offset?30;
注意: limit 和 offset 語句都放在查詢語句的最后面。
MySQL 查詢語句排序的關鍵字是 order by。
order by 的如下幾個用法
order by 的正序、逆序
多個字段排序
按照中文排序
1、order by 的升序、倒序
order by 的語法是 order by field_name asc/desc
,asc 是升序,desc 是倒序
比如根據 book_name 字段按照升序排列返回:
select?*?from?book?order?by?book_name?asc;
其實,asc 是 order by 的默認排序方式,所以如果是升序,asc 是可以省略的。
select?*?from?book?order?by?book_name;
如果是倒序就是用 desc:
select?*?from?book?order?by?book_name?desc;
2、多個字段排序
如果是多個字段分別倒序、升序,通過逗號分隔連用即可:
select?*?from?book?order?by?book_name?desc,?author?asc;
3、按照中文排序
現在插入幾條帶中文的數據:
insert?into?book?(book_name,?author)?values('中文測試',?'作者1'),?('這是測試',?'作者2'),?('測試',?'作者3');
直接使用排序的邏輯會發(fā)現排序是不對的,因為 '測試' 的拼音是在 'ceshi',但是排序卻并沒有在其他兩條數據前面:
select?*?from?book?order?by?book_name;
那么這就需要用到另一個用法:
select?*?from?book?order?by?convert(book_name?using?gbk);
其語法是 convert(field_name using gbk)
,convert 函數里是字段名,然后 using gbk 表示轉化成 gbk 的格式來排序。
以上就是MySQL限制數據返回條數limit offset及排序order by用法的詳細內容,更多關于MySQL limit offset order by的資料請關注腳本之家其它相關文章!
相關文章
win10下mysql 8.0.12 安裝及環(huán)境變量配置教程
這篇文章主要為大家詳細介紹了MySQL8.0的安裝、配置、啟動服務和登錄及配置環(huán)境變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03Linux下mysql 8.0.15 安裝配置圖文教程以及修改密碼
這篇文章主要為大家詳細介紹了Linux下mysql 8.0.15安裝配置圖文教程以及修改密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03MySQL show process命令監(jiān)控診斷數據庫性能詳解
這篇文章主要為大家介紹了MySQL show process命令監(jiān)控診斷數據庫性能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10