MySQL 1対多関連クエリのページングエラー問題の解決方法

MySQL 1対多関連クエリのページングエラー問題の解決方法

XML価格照会のクエリデータにはリストが含まれているため、コレクションが必要です

<結果マップ id="XX" タイプ="com.XXX.XXXX">
    <id 列="o_id" jdbcType="BIGINT" プロパティ="id" />
    <結果列="o_user_id" jdbcType="BIGINT" プロパティ="userId" />
    ....
    <コレクションプロパティ="orderProductList" ofType="com.XXXXXX.XXXXX">
      <id 列="p_id" jdbcType="BIGINT" プロパティ="id" />
      <結果列="p_order_id" jdbcType="BIGINT" プロパティ="orderId" />
      ....
    </コレクション>
  </結果マップ>

このようなクエリ システムによってカプセル化された一般的なページング クエリは正しくないため、解決するには独自の SQL にページングを追加する必要があります。

<select id="XXX" resultMap="オーダーリストマップ">
    選択
    あなた.ニックネーム、
    yo.id o_id、
    yo.ユーザーID o_ユーザーID
    から
    (
    *から選択
    注文する
    どこ
    1 = 1
    <if テスト="ステータス != null">
      そして `status` = #{status}
    </if>
    <if test="page != null かつ limit != null">
    制限 #{ページ}、
    #{制限}
    </if>
    )
    左結合 XXX yop ON yo.id = yop.order_id
    LEFT JOIN XXXX あなた ON yo.user_id = you.id
  </選択>

パラメータを渡すときは計算が必要

(offset - 1) * limit, limit

要約する

上記は、編集者が紹介したMySQLの1対多関連クエリのページングエラー問題の解決策です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL 百万レベルのデータページングクエリ最適化ソリューション
  • 数千万のデータを扱うMySQLのページングクエリのパフォーマンスを最適化する
  • MySQL、Oracle、SQL Server のページングクエリ例の分析
  • MySQL の制限使用法とページングクエリステートメントのパフォーマンス分析の詳細な説明
  • Mysql 制限ページングクエリ最適化の詳細な説明
  • Oracle、MySQL、SqlServe のページング クエリ ステートメントの違いの概要
  • mysql、mssql、oracle のページング クエリ メソッドの詳細な説明
  • MySQL のページングクエリの 2 つのソリューションの比較
  • 3 つのデータベース (Oracle、MySQL、SqlServer) のページング クエリの例
  • MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点

<<:  VueとFlask間の通信の実装

>>:  Nginx と GeoIP モジュールを使用して IP の地域情報を読み取る方法

推薦する

CSSレイアウトにおけるフローティング問題に対する4つの解決策の詳細な説明

1. 原因:サブボックスをフロートに設定した後の効果: 青いボックスをフロートに設定すると、標準のド...

Vuex データの永続性を実装するためのアイデアとコード

vuexとはvuex: vue.js専用に開発された状態管理ツールで、すべてのコンポーネントの状態を...

Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。

序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...

JavaScript の手ぶれ補正とスロットリングの詳細な説明

目次デバウンススロットル要約するデバウンス定義: スクロール イベントなど、短時間に連続してトリガー...

MySQL 8.0.23 メジャーアップデート (新機能)

著者: Guan Changlong は、Aikesheng の配送サービス部門の DBA です。主...

負荷分散と動的・静的分離を実現するNginx+Tomcatの原理の分析

1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...

CSS3はトランジション効果を実現するためにtransitionプロパティを使用する。

物件の詳細な説明transition 属性の目的は、一部の CSS プロパティ (背景など) をスム...

CSS の :focus-within の楽しさについて簡単に説明します

Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...

MySQL の行レベルロックの詳細な例

序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...

Google Recaptcha 認証を使用した Vue 実装例

最近のプロジェクトでは、Google ロボット認証を使用する必要があります。これには VPN が必要...

シンプルなドラッグ効果を実現するJavaScript

この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Linux trコマンドの使用

1. はじめにtr はテキストの一部を変換または削除するために使用されます。 tr は transl...

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

Linux でパスワードの有効期限を表示および設定する方法

適切な設定を行うことで、Linux ユーザーにパスワードを定期的に変更させることができます。パスワー...

Vueはチャットインターフェースを実装する

この記事の例では、チャットインターフェースの表示を実現するためのVueの具体的なコードを参考までに共...