
MySQL 列での JSON データのクエリ
MySQL では、JSON オブジェクトを列に格納して、複雑なデータ構造を格納できます。これらの JSON フィールドを効率的にクエリするには、それらを WHERE 句に組み込む際に課題が発生する場合があります。解決策は次のとおりです。
json_extract を使用した解決策
MySQL 5.7 以降では、JSON データから特定の値を抽出できる json_extract 関数がサポートされています。この関数は、JSON データと JSON パス式の 2 つの引数を受け入れます。
例:
「json_data」列を持つ「articles」テーブルがあるとします。 JSON オブジェクトを保存します。 「CPU」を含むタイトルの記事を検索するには:
1 2 3 | <code class = "sql" >SELECT user_id, json_data
FROM articles
WHERE json_extract(json_data, '$.title' ) LIKE '%CPU%' ;</code>
|
ログイン後にコピー
このクエリは次を返します:
1 2 3 4 5 | +---------+--------------------------------------------------------------------------------------------------+
| user_id | json_data |
+---------+--------------------------------------------------------------------------------------------------+
| 1 | { "url" : "https://www.cpubenchmark.net/" , "title" : "CPU Benchmarks" } |
+---------+--------------------------------------------------------------------------------------------------+
|
ログイン後にコピー
説明:
- json_extract 関数は、「json_data」列の JSON データから「title」フィールドを抽出します。
- LIKE 演算子は、抽出された値を「%CPU%」と比較するために使用されます。
json_extract をクエリに組み込むことで、MySQL で JSON データを簡単に検索およびフィルタリングできるため、複雑なデータを操作するための強力なツールになります。
以上がMySQL 列に保存されている JSON データをクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。