MySQL JSON_SEARCH関数:JSONデータ検索の基本と実践
MySQLのJSON_SEARCH関数は、指定された値をJSONデータ内で検索し、その値がJSON内でどこにあるかのパスを返します。
以下はその構文です:
JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, wildcard_char[, path] ] ])
パラメーターの説明:
- json_doc が検索対象のJSON ドキュメントです。
- one_or_all:検索方法の指定、’one’(最初の一致項目のみを検索)または’all’(すべての一致項目を検索)が可能です。
- 検索する値:search_str
- エスケープ文字:特殊文字をエスケープするためのエスケープ文字で、デフォルトはバックスラッシュ(\)です。
- ワイルドカード文字:* は、ワイルドカードマッチングに使用されるデフォルトのワイルドカードです。
- path:JSON内で検索する指定されたパス、デフォルトはNULLです。
例:
以下のJSONデータがあると仮定します:
{"name": "John", "age": 30, "address": {"city": "New York", "zip": "10001"}}
「New York」を検索するには、JSON_SEARCH関数を使用できます。
SELECT JSON_SEARCH('{"name": "John", "age": 30, "address": {"city": "New York", "zip": "10001"}}', 'one', 'New York');
このクエリは、”$.address.city”を返します。これは、JSONで”New York”が見つかり、そのパスが”$.address.city”であることを示しています。