ホームページ  >  記事  >  データベース  >  MySQL で JSON 配列内の特定の値を見つけるにはどうすればよいですか?

MySQL で JSON 配列内の特定の値を見つけるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 08:24:03250ブラウズ

How to Find a Specific Value within a JSON Array in MySQL?

MySQL: 配列内の特定のキー値の検索

MySQL では、配列から特定の値を取得するシナリオが発生する場合があります。 JSON オブジェクトの配列。 JSON_SEARCH 関数を使用すると、目的のノードへのパスを取得できます。ただし、これを特定の配列要素の選択と組み合わせるのは難しい場合があります。

解決策: JSON_TABLE 関数

MySQL 8.0 は、JSON を変換する JSON_TABLE 関数を提供します。ドキュメントを、従来の行と列に似た仮想派生テーブルに変換します。これにより、JSON データに対して選択および射影操作を実行できるようになります。

次のサンプル JSON 配列について考えてみましょう:

<code class="json">[
    {"Race": "Orc", "strength": 14},
    {"Race": "Knight", "strength": 7}
]</code>

ナイトの強さを調べるには、次のクエリを使用できます。 :

<code class="sql">SELECT j.strength, j.race
FROM mytable, JSON_TABLE(mycol, '$[*]'
  COLUMNS (
    race VARCHAR(10) PATH '$.Race',
    strength INT PATH '$.strength'
  )
) AS j
WHERE j.race = 'Knight';</code>

制限事項と考慮事項

  • JSON_TABLE 関数では属性を明示的に指定する必要がありますが、属性が不明な場合は実用的ではない可能性があります。
  • JSON_TABLE を使用してビューを定義すると、この派生テーブルの作成の繰り返しの性質を軽減できます。
  • クエリを簡素化し、最適化するために、複雑な JSON データの正規化を検討してください。

以上がMySQL で JSON 配列内の特定の値を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。