ページングとは? クエリ中のデータ量が多すぎることを意味します。すべてのクエリ結果を一度に返すと、ネットワーク リソースが消費されます。クエリ効率の観点から言えば、ユーザーが一度に何千ものデータを読み取ることは不可能です。そこでページング技術が登場しました。ページネーションでは、指定された量のデータのみを表示できます。
MySQL では、キーワード LIMIT を使用してページング操作を実装します。形式は次のとおりです:
LIMIT 位置オフセット、ページあたりのエントリ数;
位置オフセットが 0 に等しい場合、ステートメントは次のように省略できます:
LIMIT ページごとのエントリ数;
[例 1] 従業員テーブル employees の従業員の
employee_id および
をクエリします。 last_name
、salary
、および 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;
の x x x レコードをクエリします。 [例 1] 従業員テーブル employees
の 32 番目と 33 番目の従業員のデータをクエリします。
SELECT employee_id, last_name, salary FROM employees LIMIT 31, 2;
の宣言順序 (非実行順序) 正しい宣言順序は次のコードに示すとおりです。
SELECT employee_id, last_name, salary FROM employees WHERE salary >= 5000 ORDER BY salary DESC LIMIT 0, 10;
MySQL8.0 では、##LIMITOFFSET
:
LIMIT ごとにオフセットを追加するページングの新機能が追加されました。ページ エントリの数 OFFSET 初期オフセット;元の形式と比較します。これは、初期オフセットの位置とページごとのエントリ数を逆にして、カンマを削除するだけです。
LIMIT MySQL、PostgreSQL、MariaDB、SQLite で使用できます。
LIMIT は Oracle、DB2、SQL Server では使用できません。
以上がMySQLでページング操作を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。