Heim >Datenbank >MySQL-Tutorial >So implementieren Sie den Paging-Vorgang in MySQL

So implementieren Sie den Paging-Vorgang in MySQL

WBOY
WBOYnach vorne
2023-05-30 09:10:225429Durchsuche

    1. Hintergrund

    Was bedeutet Paging? Das bedeutet, dass die Datenmenge beim Abfragen zu groß ist Abfrageergebnisse werden sofort zurückgegeben. Dies verbraucht Netzwerkressourcen und verringert die Abfrageeffizienz. Es ist für Benutzer unmöglich, Tausende von Daten gleichzeitig zu lesen. So entstand die Paging-Technologie. Durch die Paginierung kann nur eine bestimmte Datenmenge angezeigt werden.

    2. Implementierungsregeln

    2.1 Schlüsselwort LIMIT

    Verwenden Sie in MySQL das Schlüsselwort LIMIT, um Paging-Vorgänge zu implementieren. Das Format ist:

    LIMIT Positionsoffset, Anzahl der Einträge pro Seite;

    Wenn der Positionsoffset gleich 0 ist, kann diese Anweisung Die Abkürzung lautet:

    LIMIT Anzahl der Einträge pro Seite;

    [Beispiel 1] Fragen Sie die Mitarbeitertabelle employeesab > Die Informationen zu employee_id, last_name, salary und department_id des Mitarbeiters. und mit 20 Elementen pro Seite angezeigt. employees 中的员工的 employee_idlast_namesalarydepartment_id 信息。并按每页 20 条来显示。

    # 写法一
    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 0, 20;
    
    # 写法二
    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 20;

    其中,LIMIT 后第一个参数是初始偏移量,即从第几条数据开始显示;第二个参数是每页要显示多少条数据。

    显示了员工编号 100~119 的员工。

    【例子2】继续上面的例子1,上面的代码只是显示了第一页的数据,如果现在用户想要显示第2页的数据,应该怎么操作呢?可以使用 LIMIT 后第一个参数是初始偏移量来让数据库从第21条数据 (因为第1条数据的编号为 0 ,所以第20条数据的编号就是20) 开始显示。如下代码所示:

    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 20, 20;

    显示了员工编号 120~139 的员工。

    【总结】总结一个分页的公式,设每页显示的数据个数为 pageSize,当前是第 pageNo 页,那么就有如下 LIMIT 查询公式:

    LIMIT (pageNo - 1) * pageSize, pageSize;

    2.2 查询数据库表的第 x x x 条记录

    【例子1】查询员工表 employees 中的第 32、33条员工的数据。

    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 31, 2;

    2.3 WHERE…ORDER BY…LIMIT… 的声明顺序 (非执行顺序)

    正确的声明顺序如下代码所示:

    SELECT employee_id, last_name, salary
    FROM employees
    WHERE salary >= 5000
    ORDER BY salary DESC
    LIMIT 0, 10;

    三、 拓展

    MySQL8.0中对于分页新增了一个新特性,对 LIMIT 后增加了偏移量 OFFSET :

    LIMIT 每页条目数 OFFSET 初始偏移量;

    对比一下原有的格式,无非就是把 初始偏移量 和 每页条目数 位置调转一下,然后把逗号去掉即可。

    LIMIT 可以使用在 MySQL、PostgreSQL、MariaDB 和 SQLite 中。LIMITrrreee

    Dabei ist der erste Parameter nach LIMIT der anfängliche Offset, d. h. ab welchem ​​Datenelement mit der Anzeige begonnen werden soll; der zweite Parameter gibt an, wie viele Teile angezeigt werden sollen auf jeder Seite Daten. #🎜🎜##🎜🎜# zeigt Mitarbeiter mit den Mitarbeiternummern 100~119 an. #🎜🎜##🎜🎜#[Beispiel 2] In Fortsetzung des obigen Beispiels 1 zeigt der obige Code nur die Daten auf der ersten Seite an. Wenn der Benutzer nun die Daten auf der zweiten Seite anzeigen möchte, was soll er tun? Sie können LIMIT verwenden und der erste Parameter ist der anfängliche Offset, damit die Datenbank beim 21. Datenelement beginnt (da die Nummer des 1. Datenelements 0 ist, also die Nummer des 20. Datenelements). der Daten beträgt 20) anzeigen. Wie im folgenden Code gezeigt: #🎜🎜#rrreee#🎜🎜# zeigt Mitarbeiter mit den Mitarbeiternummern 120~139 an. #🎜🎜##🎜🎜#[Zusammenfassung] Fassen Sie eine Paging-Formel zusammen. Nehmen Sie an, dass die Anzahl der auf jeder Seite angezeigten Daten pageSize und die aktuelle Seite pageNo ist. Dann gibt es die folgende LIMIT-Abfrage Formel: # 🎜🎜#rrreee#🎜🎜#2.2 Abfrage des Datensatzes x x x der Datenbanktabelle#🎜🎜##🎜🎜#[Beispiel 1] Abfrage der Daten des 32. und 33. Mitarbeiters in der Mitarbeitertabelle mitarbeiter . #🎜🎜#rrreee#🎜🎜#2.3 WHERE…ORDER BY…LIMIT… Deklarationsreihenfolge (Nichtausführungsreihenfolge)#🎜🎜##🎜🎜#Die korrekte Deklarationsreihenfolge ist im folgenden Code dargestellt: #🎜🎜#rrreee #🎜🎜 #3. Erweiterung#🎜🎜##🎜🎜#MySQL8.0 hat eine neue Funktion für Paging hinzugefügt und einen Offset <code>OFFSET nach LIMIT hinzugefügt:# 🎜🎜 ##🎜🎜##🎜🎜#LIMIT Anzahl der Einträge pro Seite OFFSET anfänglicher Offset; Drehen Sie einfach die Seiteneintragsnummer und entfernen Sie das Komma. #🎜🎜##🎜🎜#LIMIT kann in MySQL, PostgreSQL, MariaDB und SQLite verwendet werden. LIMIT kann nicht in Oracle, DB2, SQL Server verwendet werden! #🎜🎜#

    Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Paging-Vorgang in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen