假设json字段的内容为
?[{"name": "", "type": "1", "number": "30276207", "company": [103], "hasName": true, "employeeId": 1}, {"name": "", "type": "1", "number": "11725165", "company": [128], "hasName": true, "employeeId": 5}]
查询?employeeId=1 的数据
select * from biz_patent where JSON_CONTAINS(inventor, '{"employeeId": 1}');
select * from biz_patent where JSON_CONTAINS(inventor, CONCAT('{"employeeId": ', 3 , '}'));
?
步骤一:创建表格
首先,我们需要创建一个表格来存储包含JSON对象数组的数据。可以使用以下代码创建一个名为 my_table 的表格:
CREATE TABLE my_table (
id INT PRIMARY KEY AUTO_INCREMENT,
json_data JSON
);
上述代码创建了一个包含两个列的表格,id 和 json_data。其中,json_data 列用于存储我们要查询的JSON数据。
步骤二:插入JSON数据
接下来,我们需要插入一些包含JSON对象数组的数据。可以使用以下代码插入一条数据:
INSERT INTO my_table (json_data)
VALUES ('[{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 35}]');
上述代码向 my_table 表格中插入了一个包含三个JSON对象的JSON数组。你可以根据需要插入更多的数据。
步骤三:查询包含特定条件的JSON对象数组
现在,我们已经准备好进行查询了。使用以下代码查询包含特定条件的JSON对象数组:
SELECT * FROM my_table
WHERE JSON_CONTAINS(json_data, '{"name": "Alice"}');
?上述代码使用JSON_CONTAINS函数查询包含 {"name": "Alice"} 条件的JSON对象数组。如果该条件存在于JSON数组中的任意一个对象中,则会返回匹配的记录。