MySQL索引查詢(xún)limit?offset及排序order?by用法
引言
“ 這是MySQL系列筆記的第九篇,文章內(nèi)容均為本人通過(guò)實(shí)踐及查閱資料相關(guān)整理所得,可用作新手入門(mén)指南,或者個(gè)人知識(shí)點(diǎn)查閱。”
select 語(yǔ)句獲取數(shù)據(jù)我們可以通過(guò) where 語(yǔ)句來(lái)限制條件。
但是如果限制條件之后還是很多數(shù)據(jù),比如說(shuō) 一萬(wàn)條,但有時(shí)候我們只是想看看數(shù)據(jù)的基本情況,不需要一萬(wàn)條數(shù)據(jù),看不完,而且這一萬(wàn)條數(shù)據(jù)返回到客戶(hù)端的時(shí)間也很長(zhǎng),沒(méi)必要,那么這就需要我們使用 limit 和 offset 來(lái)限制返回的數(shù)量。
使用 limit 和 offset 來(lái)限制返回的數(shù)量
1、limit
limit 限制數(shù)量,后面跟一個(gè)整數(shù) n,表示只返回符合條件的 n 條數(shù)據(jù)
比如說(shuō)返回 book 表的前 5 條數(shù)據(jù):
select?*?from?book?limit?5;
2、offset
offset 是偏移量,和 limit 連用,比如說(shuō) limit 3 offset 5 表示舍棄前5條數(shù)據(jù), 然后返回之后的 3條數(shù)據(jù)
可以理解成分頁(yè)的用法,比如說(shuō)每頁(yè)數(shù)量為 10 條,然后我們分別獲區(qū)第1、2、3、4頁(yè)的數(shù)據(jù):
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 語(yǔ)句都放在查詢(xún)語(yǔ)句的最后面。
MySQL 查詢(xún)語(yǔ)句排序的關(guān)鍵字是 order by。
order by 的如下幾個(gè)用法
order by 的正序、逆序
多個(gè)字段排序
按照中文排序
1、order by 的升序、倒序
order by 的語(yǔ)法是 order by field_name asc/desc,asc 是升序,desc 是倒序
比如根據(jù) book_name 字段按照升序排列返回:
select?*?from?book?order?by?book_name?asc;
其實(shí),asc 是 order by 的默認(rèn)排序方式,所以如果是升序,asc 是可以省略的。
select?*?from?book?order?by?book_name;
如果是倒序就是用 desc:
select?*?from?book?order?by?book_name?desc;
2、多個(gè)字段排序
如果是多個(gè)字段分別倒序、升序,通過(guò)逗號(hào)分隔連用即可:
select?*?from?book?order?by?book_name?desc,?author?asc;
3、按照中文排序
現(xiàn)在插入幾條帶中文的數(shù)據(jù):
insert?into?book?(book_name,?author)?values('中文測(cè)試',?'作者1'),?('這是測(cè)試',?'作者2'),?('測(cè)試',?'作者3');
直接使用排序的邏輯會(huì)發(fā)現(xiàn)排序是不對(duì)的,因?yàn)?'測(cè)試' 的拼音是在 'ceshi',但是排序卻并沒(méi)有在其他兩條數(shù)據(jù)前面:
select?*?from?book?order?by?book_name;
那么這就需要用到另一個(gè)用法:
select?*?from?book?order?by?convert(book_name?using?gbk);
其語(yǔ)法是 convert(field_name using gbk),convert 函數(shù)里是字段名,然后 using gbk 表示轉(zhuǎn)化成 gbk 的格式來(lái)排序。
以上就是MySQL限制數(shù)據(jù)返回條數(shù)limit offset及排序order by用法的詳細(xì)內(nèi)容,更多關(guān)于MySQL limit offset order by的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- MySQL的兩種分頁(yè)方式之Offset/Limit分頁(yè)和游標(biāo)分頁(yè)詳解
- mysql中的limit和offset用法詳解
- 詳細(xì)介紹mysql中l(wèi)imit與offset的用法
- MySQL查詢(xún)中LIMIT的大offset導(dǎo)致性能低下淺析
- mysql查詢(xún)時(shí)offset過(guò)大影響性能的原因和優(yōu)化詳解
- mysql分頁(yè)時(shí)offset過(guò)大的Sql優(yōu)化經(jīng)驗(yàn)分享
- 優(yōu)化mysql的limit offset的例子
- MySQL中OFFSET 越大越慢怎么解決
相關(guān)文章
MySQL刪除數(shù)據(jù)Delete與Truncate語(yǔ)句使用比較
在MySQL數(shù)據(jù)庫(kù)中,DELETE語(yǔ)句和TRUNCATE TABLE語(yǔ)句都可以用來(lái)刪除數(shù)據(jù),但是這兩種語(yǔ)句還是有著其區(qū)別的,下文就為您介紹這二者的差別所在2012-09-09
DOS命令行窗口mysql中文顯示亂碼問(wèn)題解決方法
MySQL的默認(rèn)編碼是Latin1,不支持中文,如何修改MySQL的默認(rèn)編碼呢,下面為大家詳細(xì)介紹下2014-05-05
MySQL中導(dǎo)出用戶(hù)權(quán)限設(shè)置的腳本分享
這篇文章主要介紹了MySQL中導(dǎo)出用戶(hù)權(quán)限設(shè)置的腳本分享,本文通過(guò)導(dǎo)出mysql.user表中數(shù)據(jù)實(shí)現(xiàn)導(dǎo)出權(quán)限設(shè)置,需要的朋友可以參考下2014-10-10
MySQL中Stmt 預(yù)處理提高效率問(wèn)題的小研究
在oracle數(shù)據(jù)庫(kù)中,有一個(gè)變量綁定的用法,很多人都比較熟悉,可以調(diào)高數(shù)據(jù)庫(kù)效率,應(yīng)對(duì)高并發(fā)等,好吧,這其中并不包括我,當(dāng)同事問(wèn)我MySQL中有沒(méi)有類(lèi)似的寫(xiě)法時(shí),我是很茫然的,于是就上網(wǎng)查,找到了如下一種寫(xiě)法2011-08-08
MySQL對(duì)小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn)
數(shù)學(xué)函數(shù)是MySQL中常用的一類(lèi)函數(shù),其主要用于處理數(shù)字,包括整型和浮點(diǎn)數(shù)等等,本文主要介紹了MySQL對(duì)小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08

