ホームページ >データベース >mysql チュートリアル >JSON_EXTRACT を使用して MySQL に保存されている JSON データを効果的に検索するにはどうすればよいですか?

JSON_EXTRACT を使用して MySQL に保存されている JSON データを効果的に検索するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-23 16:24:20417ブラウズ

How Can I Effectively Search JSON Data Stored in MySQL Using JSON_EXTRACT?

MySQL での JSON データの検索

JSON でエンコードされたデータを含むレコードを MySQL データベースに挿入したので、そのデータ内を検索する必要があります。ただし、提供された SQL クエリは望ましい結果を返しません。 MySQL バージョン 5.7 で導入された JSON 抽出関数を利用したソリューションを検討してみましょう。

MySQL 5.7 での JSON 抽出

MySQL バージョン 5.7 以降では、JSON 抽出関数はJSON 値に移動してデータを取得するための強力な方法。そのような関数の 1 つである JSON_EXTRACT を使用すると、特定のキーをターゲットにして、それに対応する値を抽出できます。

JSON_EXTRACT をクエリに適用する

attribs_json フィールド内で特定のキーを検索するには-value ペアの場合、JSON_EXTRACT を次のように使用できます。

SELECT id, JSON_EXTRACT(attribs_json, "$.feature.1.value") AS matching_value
FROM products
WHERE JSON_EXTRACT(attribs_json, "$.feature.1.value") REGEXP '\[[^"]*3[^"]*\]'

説明:

  • $.feature.1.value 式は、「feature」内のキー「1」の値をターゲットとします。 " object.
  • REGEXP 述語は、抽出された値に文字列が含まれない結果に結果を制限します。 "3".

このクエリは、「feature」オブジェクトの「1」キーの値が「3」を含まないすべての行を返します。提供されたデータの場合、["2"] および ["2", "1"] の "1" 値を持つ行と一致します。

結論

MySQL の JSON 抽出機能を利用すると、JSON でエンコードされたフィールドに格納されたデータを効率的に検索してアクセスできます。 JSON_EXTRACT 関数は、特定の値を抽出し、JSON データに対して複雑なフィルタリング操作を実行する柔軟かつ効率的な方法を提供します。

以上がJSON_EXTRACT を使用して MySQL に保存されている JSON データを効果的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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