ホームページ >データベース >mysql チュートリアル >特定のフィールド値に基づいて MySQL で JSON データをクエリするにはどうすればよいですか?
MySQL での JSON データのクエリ
問題:
JSON オブジェクトを格納する列。特定の JSON フィールド値に基づいて結果をフィルタリングするクエリを実行する必要があります。
解決策: json_extract 関数の使用
MySQL 5.7 以降では、json_extract 関数が導入されました。列に格納されている JSON オブジェクトから特定の値を抽出します。これにより、次のようなクエリを実行できます:
<code class="sql">SELECT user_id, json_data FROM articles WHERE json_extract(json_data, '$.title') LIKE '%CPU%';</code>
例:
次のテーブルを考えてみましょう:
<code class="sql">CREATE TABLE articles ( id int NOT NULL, user_id int NOT NULL, json_data json NOT NULL ); INSERT INTO articles (id, user_id, json_data) VALUES (1, 1, '{"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"}'), (2, 1, '{"url":"http://www.ebay.com/sch/CPUs-Processors-/164/i.html","title": "Computer and Processors"}'), (3, 2, '{"url":"https://www.youtube.com/watch?v=tntOCGkgt98","title": "Funny Cats Compilation"}');</code>
クエリの実行上記は次の結果を返します:
<code class="sql">+---------+--------------------------------------------------------------------------------------------------+ | user_id | json_data | +---------+--------------------------------------------------------------------------------------------------+ | 1 | {"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"} | +---------+--------------------------------------------------------------------------------------------------+</code>
これは、json_extract 関数を使用して MySQL で JSON データをフィルタリングする方法を示しています。
以上が特定のフィールド値に基づいて MySQL で JSON データをクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。