亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL?中的?LIMIT?語句及基本用法

 更新時間:2025年06月13日 11:41:14   作者:BirdMan98  
LIMIT?語句用于限制查詢返回的行數(shù),常用于分頁查詢或取部分數(shù)據(jù),提高查詢效率,本文給大家介紹MySQL?中的?LIMIT?語句,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧

MySQL 中的 LIMIT 語句

LIMIT 語句用于限制查詢返回的行數(shù),常用于分頁查詢或取部分數(shù)據(jù),提高查詢效率。

1. LIMIT 語法

SELECT 列名1, 列名2, ...
FROM 表名
WHERE 條件
ORDER BY 排序字段
LIMIT 記錄數(shù) OFFSET 偏移量;

或:

SELECT 列名1, 列名2, ...
FROM 表名
WHERE 條件
ORDER BY 排序字段
LIMIT 偏移量, 記錄數(shù);

?? LIMIT 偏移量, 記錄數(shù) 和 LIMIT 記錄數(shù) OFFSET 偏移量 作用相同。

2.LIMIT基本用法

(1) 獲取前 N 行數(shù)據(jù)

SELECT * FROM users LIMIT 5;

返回表 users 的前 5 行數(shù)據(jù)。

(2) LIMIT 結合 ORDER BY

如果不排序,返回的數(shù)據(jù)可能不穩(wěn)定(順序不確定)。

SELECT * FROM users ORDER BY age DESC LIMIT 5;

先按 age 降序排序,再取前 5 行數(shù)據(jù)。

(3) LIMIT 進行分頁查詢

如果要獲取第 11 到 20 條記錄

SELECT * FROM users ORDER BY id ASC LIMIT 10 OFFSET 10;

或:

SELECT * FROM users ORDER BY id ASC LIMIT 10, 10;

?? 等效于 LIMIT 10 OFFSET 10,其中:

  • 10 是 偏移量(OFFSET),表示跳過前 10 條數(shù)據(jù)。
  • 10 是 返回的行數(shù)(LIMIT)。

?? 分頁查詢公式

LIMIT 每頁條數(shù) OFFSET (當前頁 - 1) * 每頁條數(shù);

例如:

第 1 頁(前 10 條):LIMIT 10 OFFSET 0第 2 頁(第 11-20 條):LIMIT 10 OFFSET 10第 3 頁(第 21-30 條):LIMIT 10 OFFSET 20

3. LIMIT 結合 COUNT()

(1) 統(tǒng)計總記錄數(shù)

分頁時,通常要先獲取總記錄數(shù):

SELECT COUNT(*) FROM users;

?? COUNT(\*) 更快,不會忽略 NULL。

4. LIMIT 結合 RAND()(隨機取數(shù)據(jù))

如果想要隨機返回 3 條記錄

SELECT * FROM users ORDER BY RAND() LIMIT 3;

?? ? 注意

ORDER BY RAND() 性能較低,會對所有數(shù)據(jù)進行排序再取值。

更高效的隨機查詢(適用于 id 遞增的數(shù)據(jù)表):

SELECT * FROM users 
WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM users))) 
LIMIT 3;

5. LIMIT 語句的性能優(yōu)化

(1) LIMIT OFFSET 可能導致性能下降

OFFSET 很大時:

SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 100000;

MySQL 仍然會掃描 100000 行,然后丟棄前 100000 條數(shù)據(jù),只返回 10 條,影響性能。

優(yōu)化方法:用索引加條件替代 OFFSET

SELECT * FROM users WHERE id > 100000 ORDER BY id LIMIT 10;

?? 適用于 id 是自增主鍵的情況,查詢速度更快。

(2) LIMIT 結合 JOIN 可能引發(fā)性能問題

SELECT * FROM users 
JOIN orders ON users.id = orders.user_id 
ORDER BY users.id LIMIT 100000, 10;

?? 如果 users.id 沒有索引,查詢會很慢。

優(yōu)化方法

SELECT users.* FROM users 
WHERE users.id > (SELECT id FROM users ORDER BY id LIMIT 100000, 1) 
ORDER BY users.id LIMIT 10;

找到偏移的起點,再 LIMIT 取值,減少掃描行數(shù)。

6. LIMIT 結合 GROUP BY

如果要獲取每個城市的前 3 名用戶

SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY city ORDER BY age DESC) AS rank
    FROM users
) AS temp WHERE rank <= 3;

?? ROW_NUMBER() 需要 MySQL 8.0+ 才支持。

7. LIMIT 結合 DISTINCT

如果要獲取唯一數(shù)據(jù)的前 5 條

SELECT DISTINCT city FROM users LIMIT 5;

?? LIMITDISTINCT 之后生效,只返回 5 個唯一的 city。

8. LIMIT 語句總結

用法語法示例說明
獲取前 N 行LIMIT 5取前 5 條數(shù)據(jù)
分頁查詢LIMIT 10 OFFSET 10取第 11-20 條數(shù)據(jù)
隨機取 N 條ORDER BY RAND() LIMIT 3隨機返回 3 條數(shù)據(jù)
統(tǒng)計總數(shù)SELECT COUNT(*) FROM users;獲取總記錄數(shù)
優(yōu)化大偏移WHERE id > (SELECT id FROM users LIMIT 100000, 1) LIMIT 10;避免 OFFSET 性能問題

?? 重點總結

LIMIT 限制查詢返回的行數(shù),用于分頁或取部分數(shù)據(jù)。

LIMIT 偏移量, 行數(shù) 等價于 LIMIT 行數(shù) OFFSET 偏移量。

ORDER BY + LIMIT 確保數(shù)據(jù)順序穩(wěn)定。

ORDER BY RAND() 效率低,大數(shù)據(jù)表建議用更優(yōu)化的隨機查詢。

OFFSET 查詢效率低,建議用索引優(yōu)化查詢。

這樣,你的 LIMIT 查詢就會更快、更高效!??

到此這篇關于MySQL 中的 LIMIT 語句的文章就介紹到這了,更多相關mysql limit語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL??zip安裝包配置教程

    MySQL??zip安裝包配置教程

    這篇文章詳細介紹了如何使用zip安裝包在Windows11上安裝MySQL8.0,包括下載、解壓、配置環(huán)境變量、初始化數(shù)據(jù)庫、安裝服務以及更改密碼等步驟,感興趣的朋友一起看看吧
    2025-02-02
  • 解決Mysql同步到ES時date和time字段類型轉換問題

    解決Mysql同步到ES時date和time字段類型轉換問題

    這篇文章主要介紹了Mysql同步到ES時date和time字段類型轉換問題解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • mysql登錄警告問題的解決方法

    mysql登錄警告問題的解決方法

    這篇文章主要為大家詳細介紹了mysql登錄警告問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • count(1)、count(*)與count(列名)的執(zhí)行區(qū)別詳解

    count(1)、count(*)與count(列名)的執(zhí)行區(qū)別詳解

    這篇文章主要介紹了count(1)、count(*)與count(列名)的執(zhí)行區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • MySQL 常見錯誤分析與解決方法

    MySQL 常見錯誤分析與解決方法

    Mysql 在使用過程中經常遇到錯誤,都是本人在實際應用中處理檢驗過的,本文對常見錯誤出現(xiàn)的代碼進行詳細分析,并有中文解釋,以及解決方法!
    2016-07-07
  • 一文詳解MySQL—Join的使用優(yōu)化

    一文詳解MySQL—Join的使用優(yōu)化

    JOIN是一種非常常見的操作,用于將兩個或多個表中的數(shù)據(jù)合并到一個結果集中。MySQL支持多種JOIN類型,本文通過代碼示例詳細介紹了Join的使用優(yōu)化,有需要的小伙伴可以參考閱讀
    2023-04-04
  • 解決Linux下Tomcat向MySQL插入數(shù)據(jù)中文亂碼問題

    解決Linux下Tomcat向MySQL插入數(shù)據(jù)中文亂碼問題

    本文給大家介紹的是如何解決win平臺下開發(fā)的項目移植到Linux平臺后,向MySQL插入數(shù)據(jù)時中文出現(xiàn)亂碼的問題,非常的簡單實用,有需要的小伙伴可以參考下
    2018-04-04
  • Druid數(shù)據(jù)庫連接池的jar包的使用方式

    Druid數(shù)據(jù)庫連接池的jar包的使用方式

    這篇文章主要介紹了Druid數(shù)據(jù)庫連接池的jar包的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • mysql函數(shù)IFNULL使用的及注意事項說明

    mysql函數(shù)IFNULL使用的及注意事項說明

    這篇文章主要介紹了mysql函數(shù)IFNULL使用的及注意事項說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • mysql中獲取一天、一周、一月時間數(shù)據(jù)的各種sql語句寫法

    mysql中獲取一天、一周、一月時間數(shù)據(jù)的各種sql語句寫法

    今天抽時間整理了一篇mysql中與天、周、月有關的時間數(shù)據(jù)的sql語句的各種寫法,部分是收集資料,全部手工整理,自己學習的同時,分享給大家,并首先默認創(chuàng)建一個表、插入2條數(shù)據(jù),便于部分數(shù)據(jù)的測試,其中部分名詞或函數(shù)進行了解釋說明。直入主題
    2014-05-05

最新評論