MySQL 8.0 再帰クエリの簡単な使用例

MySQL 8.0 再帰クエリの簡単な使用例

序文

この記事では、MySQL 8.0 の新機能を使用して再帰クエリを実装します。詳細なサンプル コードは記事に記載されています。詳細な概要を見てみましょう。

Mysql8.0 再帰クエリの使用

表のデータは以下のとおりです

+--------+----------+------------+
| 猫ID | 名前 | 親CID |
+--------+----------+------------+
| 12 | 美しさ | 0 |
| 4 | 衣類 | 0 |
| 5 | 婦人服 | 4 |
| 6 | メンズウェア | 4 |
| 7 | 子供服 | 4 |
| 19 | 美容とボディ | 12 |
| 18 | メイクアップ | 12 |
| 13 | スキンケア | 12 |
| 15 | スキンケアセット | 13 |
| 40 | 日焼け止め | 13 |
| 39 | メイク落とし | 13 |
| 38 | リップクリーム | 13 |
| 17 | ローションとクリーム | 13 |
| 16 | フェイシャルマスク | 13 |
| 14 | トナー | 13 |
+--------+----------+------------+

1. 「衣類」カテゴリの下にあるすべてのサブカテゴリを見つける必要があります

再帰的なtype_cteとして(
    cat_id = 4 の t_category から * を選択
    すべて結合
    t_category tからt.*を選択
                        t.parent_cid = type_cte2.cat_id に対する type_cte type_cte2 の内部結合
)
選択
    猫ID、名前、親CID
type_cte から

+--------+------+------------+
| 猫ID | 名前 | 親CID |
+--------+------+------------+
| 4 | 衣類 | 0 |
| 5 | 婦人服 | 4 |
| 6 | メンズウェア | 4 |
| 7 | 子供服 | 4 |
+--------+------+------------+

2. 「美容」カテゴリの下にあるすべてのサブカテゴリをクエリし、カテゴリ名に親カテゴリの名前が含まれる

再帰的なtype_cteとして(
    cat_id = 12 の場合、t_category から cat_id、name、parent_cid を選択
    すべて結合
    t.cat_id、concat(type_cte2.name、'>'、t.name)、t.parent_cid を選択 
    t_category tから
        t.parent_cid = type_cte2.cat_id に対する type_cte type_cte2 の内部結合
)
選択
    猫ID、名前、親CID
type_cte から;

+--------+-------------------------+-------------+
| 猫ID | 名前 | 親CID |
+--------+-------------------------+-------------+
| 12 | 美しさ | 0 |
| 13 | 美容>スキンケア | 12 |
| 18 | 美容>メイクアップ | 12 |
| 19 | 美容>美容とボディ | 12 |
| 14 | 美容>スキンケア>化粧水 | 13 |
| 15 | 美容>スキンケア>スキンケアセット | 13 |
| 16 | 美容>スキンケア>フェイシャルマスク | 13 |
| 17 | 美容>スキンケア>ローションとクリーム | 13 |
| 35 | 美容>スキンケア>クレンジング | 13 |
| 36 | 美容>スキンケア>美容液 | 13 |
| 37 | 美容>スキンケア>アイクリーム | 13 |
| 38 | 美容>スキンケア>リップクリーム | 13 |
| 39 | 美容 > スキンケア > メイク落とし | 13 |
| 40 | 美容>スキンケア>日焼け止め | 13 |
+--------+-------------------------+-------------+

3. カテゴリのすべての親カテゴリを照会する

2 番目の質問に応じて SQL を調整するだけです。

再帰的なtype_cteとして(
    cat_id = 40 の場合、t_category から cat_id、name、parent_cid を選択
    すべて結合
    t.cat_id、concat(type_cte2.name、'>'、t.name)、t.parent_cid を選択
    t_category tから
             t.cat_id = type_cte2.parent_cid に対する type_cte type_cte2 の内部結合
)
選択
    猫ID、名前、親CID
type_cte から;

+--------+----------------+-------------+
| 猫ID | 名前 | 親CID |
+--------+----------------+-------------+
| 40 | 日焼け止め | 13 |
| 13 | 日焼け止め > スキンケア | 12 |
| 12 | 日焼け止め > スキンケア > メイクアップ | 0 |
+--------+----------------+-------------+

要約する

これで、MySQL 8.0 再帰クエリに関するこの記事は終了です。MySQL 8.0 再帰クエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL 再帰クエリ ツリー テーブル子ノード、親ノードの特定の実装
  • Mysqlツリー再帰クエリの実装方法
  • MYSQLで再帰クエリを実装する方法
  • MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します
  • MySql8 WITH RECURSIVE 再帰クエリ親子コレクションメソッド

<<:  IE6 で CSS スタイルの div または li の背景のタイリングと境界の破損を解決する方法

>>:  要素を中央に配置するための配置方法 (Web ページ レイアウトのヒント)

推薦する

IE ブラウザの HTML ハック タグの概要

コードをコピーコードは次のとおりです。 <!--[if !IE]><!-->...

JavaScriptとTypeScriptの関係

目次1. JavaScript とは何ですか? 2. JavaScript は何に使用されますか? ...

TypeScript を使用して Vue3 で axios をカプセル化する詳細な例

この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...

TinyEditorはシンプルで使いやすいHTML WYSIWYGエディタです

数日前、国産の XHTML エディタを紹介しました。今日は、有名な海外の Web デザイン ブログl...

フィールドを結合するSQL関数

最近、関連テーブル内のすべてのフィールドをクエリし、それらを 1 つのフィールドに再グループ化する必...

Vueを使用してタイマー機能を実装する

この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...

jQuery Ajax チャットボットの実装事例

チャットボットは多くの手作業を省くことができ、顧客サービス、天気予報対応など、さまざまな状況で使用で...

ピクセルを包括的なブランド体験に変えるヒント

編集者:この記事では、インタラクティブデザインがブランドコミュニケーションチェーン全体で果たすべき役...

EDMをHTMLで記述する際の注意点まとめ(メール送信時の一般的な注意点)

フォーマットエンコーディング1. ページの幅は600~800px、長さは1024px以内に設定してく...

MySQL SELECT文の実行方法

MySQL Select ステートメントはどのように実行されますか?最近、Geek Time で D...

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

NavicatでMySqlスケジュールタスクを作成する方法の詳細な説明

Navicat で MySql スケジュールタスクを作成する詳細な説明イベントは、MySQL が特定...

KVM ベースの SRIOV パススルー構成とパフォーマンス テストの詳細な説明

SRIOVの導入、VFパススルー構成、パケット転送速度性能テスト目次1. SRIOVの紹介2. 環境...

setup+ref+reactive は vue3 の応答性を実装します

セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...

Mariadb リモート ログイン構成と問題解決

序文:インストール プロセスについては詳しく説明しません。問題に直接触れましょう。MySQL のリモ...