MySQL JSON フィールドをテーブル結合に使用できますか?

Susan Sarandon
リリース: 2024-10-31 23:51:28
オリジナル
106 人が閲覧しました

 Can MySQL JSON Fields Be Used for Table Joining?

テーブル結合に MySQL JSON フィールドを使用する

データベース管理では、包括的な洞察を得るために複数のテーブルのデータを結合することが必要になることがよくあります。 MySQL を使用している場合、JSON フィールドに識別子のリストが格納されている状況が発生することがあります。この投稿では、そのような JSON フィールドで操作を実行し、SQL クエリでそれらを利用することが可能かどうかという問題を取り上げます。

問題

次の架空のシナリオを考えてみましょう。ユーザー ID、ユーザー名、およびグループ ID のリストを格納する「user_groups」という JSON フィールドの列を含む「user」テーブルがあります。グループ ID とグループ名の列を含む「user_group」テーブルもあります。目標は、ユーザーとそのそれぞれのグループに関する情報を取得するクエリを構築し、次の構造のテーブルを作成することです:

user_id | user_name | user_group_id | group_name
ログイン後にコピー

望ましい結果は次のようになります:

101     | John      | 1             | Group A
101     | John      | 3             | Group C
ログイン後にコピー

解決策

望ましい結果を達成するには、次のクエリを使用できます。

SELECT 
       u.user_id, 
       u.user_name, 
       g.user_group_id,
       g.group_name
   FROM user u
   LEFT JOIN user_group g on JSON_CONTAINS(u.user_groups, CAST(g.user_group_id as JSON), '$')
ログイン後にコピー

「JSON_CONTAINS」関数を使用して、ユーザー グループ ID がユーザー グループ ID であるかどうかを判断します。 JSON フィールド「user_groups」に存在します。この機能を利用すると、JSONフィールドのグループIDの有無に基づいて「user」テーブルと「user_group」テーブルを結合できます。これにより、ユーザーとその関連グループに関する情報を取得できるようになります。

以上がMySQL JSON フィールドをテーブル結合に使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!