ホームページ >データベース >mysql チュートリアル >特定のフィールド値に基づいて MySQL で JSON データをクエリするにはどうすればよいですか?

特定のフィールド値に基づいて MySQL で JSON データをクエリするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 10:34:02457ブラウズ

How can I Query JSON Data in MySQL Based on Specific Field Values?

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 サイトの他の関連記事を参照してください。

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