1. 前言
在当今的软件开发中,数据的存储和处理变得越来越多样化。MySQL 作为一款广泛使用的关系型数据库,从 5.7 版本开始引入了对 JSON 数据类型的支持,这使得开发者能够在关系型数据库中高效地存储和处理半结构化数据。JSON_CONTAINS
、JSON_UNQUOTE
和 JSON_EXTRACT
这三个核心函数,就像是三把利刃,为我们在 MySQL 中处理 JSON 数据提供了强大的支持。
2. JSON_CONTAINS 函数
2.1 定义
JSON_CONTAINS
函数用于检查一个 JSON 文档是否包含另一个指定的 JSON 文档。如果包含,则返回 1
;否则返回 0
。
2.2 语法
JSON_CONTAINS(target, candidate[, path])
参数 | 类型 | 说明 |
---|---|---|
target | JSON | 要检查的目标 JSON 文档。 |
candidate | JSON | 要查找的 JSON 文档。 |
path | String | 可选参数,指定在目标 JSON 文档中的路径,只在该路径下进行检查,支持 JSONPath 语法。 |
2.3 示例及结果
2.3.1 示例表结构及数据
首先,我们创建一个名为 products
的表,并插入一些示例数据:
-- 创建表
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
specs JSON
);
-- 插入数据
INSERT INTO products (name, specs)
VALUES
('Product A', '{"color": "red", "size": "M", "features": ["waterproof", "breathable"]}')