Maison > base de données > tutoriel mysql > Comment implémenter l'opération de pagination dans MySQL

Comment implémenter l'opération de pagination dans MySQL

WBOY
Libérer: 2023-05-30 09:10:22
avant
5436 Les gens l'ont consulté

    1. Contexte

    Qu'est-ce que la pagination Cela signifie que la quantité de données est trop importante lors de l'interrogation, et tout ? les résultats des requêtes sont renvoyés immédiatement. Cela consomme des ressources réseau et réduit l'efficacité des requêtes. Il est impossible pour les utilisateurs de lire des milliers de données à la fois. C’est ainsi que la technologie de radiomessagerie est née. La pagination ne peut afficher qu'une quantité spécifiée de données.

    2. Règles d'implémentation

    2.1 Mot-clé LIMIT

    Dans MySQL, utilisez le mot-clé LIMIT pour implémenter les opérations de pagination. Le format est :

    LIMIT décalage de position, nombre d'entrées par page ;

    Lorsque le décalage de position est égal à 0, cette instruction peut L'abréviation est :

    LIMIT Nombre d'entrées par page ;

    [Exemple 1] Interroger la table des employés employés Les informations employee_id, last_name, salary et department_id. et affiché à 20 éléments par page. 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;
    Copier après la connexion

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

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

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

    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 20, 20;
    Copier après la connexion

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

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

    LIMIT (pageNo - 1) * pageSize, pageSize;
    Copier après la connexion

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

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

    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 31, 2;
    Copier après la connexion

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

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

    SELECT employee_id, last_name, salary
    FROM employees
    WHERE salary >= 5000
    ORDER BY salary DESC
    LIMIT 0, 10;
    Copier après la connexion

    三、 拓展

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

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

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

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

    Parmi eux, le premier paramètre après LIMIT est le décalage initial, c'est-à-dire à partir de quelle donnée commencer à afficher ; sur chaque page de données. #🎜🎜##🎜🎜# affiche les employés dont le numéro d'employé est compris entre 100 et 119. #🎜🎜##🎜🎜#[Exemple 2] Poursuivant l'exemple 1 ci-dessus, le code ci-dessus affiche uniquement les données sur la première page. Si l'utilisateur souhaite maintenant afficher les données sur la deuxième page, que doit-il faire ? Vous pouvez utiliser LIMIT et le premier paramètre est le décalage initial pour que la base de données démarre à partir du 21ème élément de données (car le numéro du 1er élément de données est 0, donc le numéro du 20ème élément des données est 20) afficher. Comme indiqué dans le code suivant : #🎜🎜#rrreee#🎜🎜# affiche les employés portant les numéros d'employé 120 à 139. #🎜🎜##🎜🎜#[Résumé] Résumez une formule de pagination, en supposant que le nombre de données affichées sur chaque page est pageSize et que la page actuelle est pageNo, alors il y a la requête LIMIT suivante formule : # 🎜🎜#rrreee#🎜🎜#2.2 Interroger l'enregistrement x x x de la table de la base de données#🎜🎜##🎜🎜#[Exemple 1] Interroger les données des 32e et 33e employés dans la table des employés employés . #🎜🎜#rrreee#🎜🎜#2.3 WHERE…ORDER BY…LIMIT… ordre de déclaration (ordre de non-exécution)#🎜🎜##🎜🎜#L'ordre de déclaration correct est tel qu'indiqué dans le code suivant : #🎜🎜#rrreee #🎜🎜 #3. L'extension#🎜🎜##🎜🎜#MySQL8.0 a ajouté une nouvelle fonctionnalité pour la pagination, en ajoutant un décalage <code>OFFSET après LIMIT :# 🎜🎜 ##🎜🎜##🎜🎜#LIMIT Nombre d'entrées par page OFFSET décalage initial ; faites simplement pivoter le numéro d'entrée de la page et supprimez la virgule. #🎜🎜##🎜🎜#LIMIT peut être utilisé dans MySQL, PostgreSQL, MariaDB et SQLite. LIMIT ne peut pas être utilisé dans Oracle, DB2, SQL Server ! #🎜🎜#

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal