ホームページ >データベース >mysql チュートリアル >MySQL でネストされた JSON 配列から「Knight」の強度値をクエリする方法

MySQL でネストされた JSON 配列から「Knight」の強度値をクエリする方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 05:20:02297ブラウズ

How to Query Strength Value of a

キーによるネストされた JSON 配列のクエリ

MySQL では、JSON_TABLE の組み合わせを使用して、ネストされた JSON 配列から特定の値を取得できます。 () 関数と WHERE 句。

次の JSON 配列を考えてみましょう:

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

Knight の強さを取得するには、次のクエリを使用できます:

<code class="sql">SELECT j.strength
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 配列から各属性の列を持つ仮想テーブルを作成します。その後、WHERE 句を使用して、「Race」属性に基づいて結果をフィルタリングします。

利点と制限

JSON_TABLE() を使用すると、次のような利点があります。

  • JSON ドキュメントからの特定の属性の選択と投影が可能です。
  • JSON データ内のフィールドに条件を適用するために使用できます。

ただし、また、いくつかの制限もあります。

  • クエリで属性フィールドを指定する必要がありますが、データ構造が不明な場合は実行できない可能性があります。
  • 深い内容を扱う場合、複雑なクエリが発生する可能性があります。ネストされた JSON ドキュメントまたは非構造化 JSON ドキュメント。

代替アプローチ

データ構造が不明であるか、頻繁に変更される場合、代替アプローチは JSON_SEARCH() 関数を使用することです。をクリックして目的の値へのパスを見つけ、パス演算子を使用して値を抽出します。ただし、このメソッドでは、JSON_TABLE() ほど簡単に選択または投影することはできません。

以上がMySQL でネストされた JSON 配列から「Knight」の強度値をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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