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 の地域情報を読み取る方法

推薦する

spanタグのスタイルに幅属性を設定する方法

span タグのスタイルに width 属性を直接設定すると、効果がないことがわかります。 disp...

Alibaba Cloud Server Tomcatにアクセスできません

目次1. はじめに2. 解決策2.1 ファイアウォールを設定してポートを開く2.3 ポートを確認し、...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

MySQL の高可用性アーキテクチャの完全な説明: MHA アーキテクチャ

目次1. はじめに2. 構成3. 作業プロセス4. 建築5. 表示例MHA (Master HA) ...

Tomcatの動作原理を分析する

SpringBoot は巨大な Python のようで、ゆっくりと私たちの周りを巻きつき、麻痺させま...

HTML でナンバープレート番号と州の略語を入力するためのサンプルコード

原理としては、まずボタン付きの div を記述し、次に画面のサイズに応じて自動的に適応してキーボード...

OEL7.6 ソースコードから MYSQL5.7 をインストールするチュートリアル

まず、公式サイト https://dev.mysql.com/downloads/mysql/5.7...

フォームの「Enter」、「Submit」、「Enter != Submit」を削除する方法

「Enter != Submit」問題を実装するには、通常、「ボタンの種類」と「入力ボックスの数」か...

jsはテーブルの追加と削除の操作を動的に実装します

この記事の例では、jsでテーブルを動的に追加および削除するための具体的なコードを参考までに共有してい...

MySQL スロークエリログの役割と公開

序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...

開発をスピードアップできる VueUse ライブラリ 5 つ (まとめ)

目次VueUse にはどのようなユーティリティがありますか? VueUseをVueプロジェクトにイン...

Dockerコンテナの操作手順の概要と詳細説明

1. コンテナを作成して実行するdocker run -it --rm centos:latest ...

Ubuntu16.04にCUDA9.0をインストールするための詳細なチュートリアル

序文:この記事は、CUDA 9.0 をインストールした経験に基づいています。CUDA 9.0 は現在...

Vueコンポーネント通信のさまざまな方法の詳細な説明

目次1. 父から息子へ2. 息子から父へ3. 親子関係のないコンポーネントの値の転送4. ヴュークス...

Linux システムでの gcc コマンドの使用法の詳細な説明

目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...