最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql中l(wèi)imit用法詳解及注意事項(xiàng)總結(jié)

 更新時(shí)間:2026年01月23日 09:19:14   作者:一位代碼  
mysql數(shù)據(jù)庫(kù)中l(wèi)imit子句可以被用于強(qiáng)制select語(yǔ)句返回指定的記錄數(shù),這篇文章主要介紹了mysql中l(wèi)imit用法詳解及注意事項(xiàng)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

mysql 中的 limit 用來(lái)限制 select 查詢返回的行數(shù),程序中常被用作分頁(yè)查詢。

一、limit 用法及示例

(一)基礎(chǔ)用法及示例

語(yǔ)法:select * from 表名 limit [offset,] count

參數(shù)說(shuō)明:

offset:偏移量,即指跳過(guò)多少行,可省略,默認(rèn)為 0,表示跳過(guò) 0 行;范圍為 [0,+∞)。

count:跳過(guò) offset 行后,取 count 行數(shù)據(jù),范圍為 [0,+∞)。

特別注意:limit 中的 offset 和 count 必須大于等于 0;且不能為表達(dá)式,只能為明確的數(shù)字。

實(shí)例1:獲取前3行記錄

命令:select * from per_data limit 0,3;

實(shí)例2:獲取第1行緊接著的2行記錄

命令:select * from per_data limit 1,2;

(二)獲取值最大的一條記錄

實(shí)例:獲取 id_num 值最大的一條記錄。

思路:先按照 id_num 降序排序,然后取第一條記錄。

命令:select * from per_data order by id_num desc limit 1;

(三)獲取第 n 行到第 m 行數(shù)據(jù)

語(yǔ)法:select * from 表名 limit n-1,m-n+1;  # offset 與 count 都是從0開(kāi)始且為左閉右開(kāi)。

實(shí)例:獲取 per_data 表的第 3 到第 5 行的數(shù)據(jù)

命令:select * from per_data limit 2,3;

(四)實(shí)現(xiàn)分頁(yè)查詢

page:表示第幾頁(yè),從1開(kāi)始,范圍 [1,+∞)

pageSize:每頁(yè)顯示多少條記錄,范圍 [1,+∞)

語(yǔ)法:select * from 表名 limit (page-1)*pageSize,pageSize;

原理與獲取第 n 行到第 m 行數(shù)據(jù)相同

需要注意的是,在分頁(yè)排序時(shí),最好根據(jù)主鍵來(lái)排除二義性,在二義性情況下會(huì)導(dǎo)致分頁(yè)結(jié)果混亂。

注:這里的二義性可理解為,按價(jià)格給商品排序,當(dāng)遇到價(jià)格相同時(shí),該怎么排序??jī)r(jià)格相同又沒(méi)指定其他條件,mysql 就亂排了。

二、limit X, -1 已不可使用

limit X, -1 早已不可使用,本身也是一個(gè)錯(cuò)誤

(一)錯(cuò)誤情況

需求:使用 mysql 時(shí),需要獲取第 X 條數(shù)據(jù)之后的所有數(shù)據(jù)。

這時(shí),首先想到的就是利用 limit 來(lái)實(shí)現(xiàn)。

早期的部分文章或者資料中,提到可以使用:limit X,-1

例如,獲取第一條后的所有數(shù)據(jù),則可寫(xiě)成如下 sql 語(yǔ)句:

select * from per_data limit 1,-1;

執(zhí)行該 sql 語(yǔ)句后,會(huì)發(fā)現(xiàn)報(bào)錯(cuò)如下:

錯(cuò)誤提示原文:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1

(二)錯(cuò)誤原因及解決辦法

錯(cuò)誤原因:據(jù)官方解釋,limit X, -1 這種形式被認(rèn)為是一個(gè)優(yōu)先級(jí)較低的 bug ,已經(jīng)被修復(fù),修復(fù)后的 limit ,將不再接收負(fù)數(shù),兩個(gè)參數(shù)都必須大于或等于 0 。

上圖原文鏈接:https://bugs.mysql.com/bug.php?id=2037

(三)解決辦法

任意填寫(xiě)一個(gè)滿足需求的足夠大的正數(shù)即可。

比如,示例表 per_data 中一共有 6 條數(shù)據(jù),要求是獲取第一條后的所有數(shù)據(jù)。

語(yǔ)法:【limit 1,count】 ,其中 count 可以是 [5,+∞)中的任意一個(gè)數(shù)。

完整語(yǔ)句如下:

select * from per_data limit 1,5;#這里的5可替換成任意一個(gè)大于5的數(shù)字

以上就是 mysql 中 limit 的用法及相關(guān)注意事項(xiàng),可供參考。

總結(jié)

到此這篇關(guān)于mysql中l(wèi)imit用法詳解及注意事項(xiàng)的文章就介紹到這了,更多相關(guān)mysql limit用法詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

榆林市| 兰溪市| 榆树市| 滨州市| 康马县| 伊川县| 台江县| 彭阳县| 鹰潭市| 阿拉善盟| 沁阳市| 东兰县| 武功县| 宁化县| 大冶市| 武城县| 天镇县| 阿合奇县| 崇礼县| 内黄县| 洮南市| 灵武市| 徐水县| 五家渠市| 普定县| 梨树县| 安吉县| 松原市| 磐安县| 象山县| 谢通门县| 若尔盖县| 太原市| 启东市| 贵州省| 偏关县| 呼和浩特市| 普安县| 本溪| 西丰县| 逊克县|