ホームページ >データベース >mysql チュートリアル >MySQL JSON_TABLE() を使用してキー値によって特定の JSON オブジェクトを検索するにはどうすればよいですか?

MySQL JSON_TABLE() を使用してキー値によって特定の JSON オブジェクトを検索するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 11:38:30327ブラウズ

How Can I Find a Specific JSON Object by Key Value Using MySQL JSON_TABLE()?

MySQL JSON: キー値によるオブジェクトの検索

MySQL で JSON オブジェクトを操作する場合、検索が必要な状況に遭遇することがあります。別のオブジェクトのキーを使用して、JSON データ内の特定のオブジェクトを作成します。適切な機能がなければ、これは困難な作業となる可能性があります。この記事では、JSON_TABLE() を使用してこれを実現する効率的な方法について説明します。

JSON_TABLE() の構文は次のとおりです。

<code class="sql">JSON_TABLE(expression, path_expression COLUMNS *(expression_list))</code>

この場合、元の質問で提供されたものと同様の JSON 構造。キーと値のペアを含むオブジェクトの配列があります。別のキーを検索しながら、あるキーから指定された値を持つオブジェクトを取得したいと考えています。

JSON_TABLE() を使用すると、次のようにクエリを作成できます。

<code class="sql">SELECT field_options.*
FROM fields
CROSS JOIN JSON_TABLE(options, '$[*]'
  COLUMNS(
    text TEXT PATH '$.text',
    value TEXT PATH '$.value'
  )
) field_options
WHERE field_options.value = 1;</code>

その方法は次のとおりです。 works:

  • CROSS JOIN: JSON_TABLE() を使用して抽出された JSON データとフィールド テーブルをリンクします。
  • JSON_TABLE():配列内のすべてのオブジェクトを表す $[*] パス式を使用して、JSON オプション列からオブジェクトを抽出します。
  • COLUMNS(): 各オブジェクトから抽出する列を指定します。テキストと値の値が含まれます。
  • WHERE 句: field_options テーブルをフィルターして、値 '1' を持つオブジェクトのみを返します。

結果は次のようになります。 JSON 配列からの一致するオブジェクトを含むテーブルにする必要があります。

ただし、このタイプのデータに対して JSON の使用が最適なソリューションであるかどうかは検討する価値があります。正規化されたリレーショナル テーブル構造でデータをより効率的に表現できる場合は、JSON の使用を避けた方がよい場合があります。これにより、クエリとメンテナンスのタスクが簡素化されます。

以上がMySQL JSON_TABLE() を使用してキー値によって特定の JSON オブジェクトを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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