首页  >  文章  >  数据库  >  如何根据特定字段值查询MySQL中的JSON数据?

如何根据特定字段值查询MySQL中的JSON数据?

Barbara Streisand
Barbara Streisand原创
2024-10-26 10:34:02383浏览

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

在 MySQL 中查询 JSON 数据

问题:

您有一个 MySQL 表,其中包含存储 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn