ホームページ >データベース >mysql チュートリアル >MySQLでページング操作を実装する方法

MySQLでページング操作を実装する方法

WBOY
WBOY転載
2023-05-30 09:10:225429ブラウズ

    1. 背景

    ページングとは? クエリ中のデータ量が多すぎることを意味します。すべてのクエリ結果を一度に返すと、ネットワーク リソースが消費されます。クエリ効率の観点から言えば、ユーザーが一度に何千ものデータを読み取ることは不可能です。そこでページング技術が登場しました。ページネーションでは、指定された量のデータのみを表示できます。

    2. 実装ルール

    2.1 キーワード LIMIT

    MySQL では、キーワード LIMIT を使用してページング操作を実装します。形式は次のとおりです:

    LIMIT 位置オフセット、ページあたりのエントリ数;

    位置オフセットが 0 に等しい場合、ステートメントは次のように省略できます:

    LIMIT ページごとのエントリ数;

    [例 1] 従業員テーブル employees の従業員の employee_id および をクエリします。 last_namesalary、および Department_id の情報。 1 ページあたり 20 項目で表示されます。

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

    このうち、LIMIT の後の最初のパラメータは初期オフセット、つまりどのデータから表示を開始するかを指定し、2 番目のパラメータは何番目のデータを表示するかを指定します。各ページ。

    社員番号100~119の社員を表示します。

    [例 2] 上記の例 1 の続きで、上記のコードでは 1 ページ目のデータのみが表示されますが、2 ページ目のデータを表示したい場合はどうすればよいでしょうか。 LIMIT を使用すると、最初のパラメータは、データベースが 21 番目のデータの表示を開始するための初期オフセットです (最初のデータの番号は 0 であるため、20 番目のデータの番号は 0 です)。データは 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;

    3拡張

    MySQL8.0 では、##LIMITOFFSET:

    LIMIT ごとにオフセットを追加するページングの新機能が追加されました。ページ エントリの数 OFFSET 初期オフセット;

    元の形式と比較します。これは、初期オフセットの位置とページごとのエントリ数を逆にして、カンマを削除するだけです。

    LIMIT MySQL、PostgreSQL、MariaDB、SQLite で使用できます。 LIMIT は Oracle、DB2、SQL Server では使用できません。

    以上がMySQLでページング操作を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。