建站兔软件常见问题,信息部网站建设工作计划,ppt做的模板下载网站有哪些内容,大理网站建设网站建设步骤一#xff1a;创建表格 首先#xff0c;我们需要创建一个表格来存储包含JSON对象数组的数据。可以使用以下代码创建一个名为 my_table 的表格#xff1a;
CREATE TABLE my_table (id INT PRIMARY KEY AUTO_INCREMENT,json_data JSON
);
上述代码创建了一个包含两个列的…步骤一创建表格 首先我们需要创建一个表格来存储包含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数组中的任意一个对象中则会返回匹配的记录。 更为复杂的场景
有时候在开发比较简单的项目时,为了方便(偷懒)会将所有关联信息以json格式保存在主表里,在新增的时候是轻松了,不用插入多张表,但是在查询的时候如果对json格式掌握不足就会给自己挖坑
假设json字段inventor的内容为 [{name: , type: 1, number: 30276207, company: [103], hasName: true, employeeId: 1}, {name: , type: 1, number: 11725165, company: [128], hasName: true, employeeId: 5}] 查询 employeeId1 的数据
select * from biz_patent where JSON_CONTAINS(inventor, {employeeId: 1});
select * from biz_patent where JSON_CONTAINS(inventor, CONCAT({employeeId: , 3 , }));
查询 employeeId1,并将所有人员姓名展示在一个字段中 的数据
分解下, 1:使用JSON_EXTRACT函数来提取JSON对象数组中的字段所有值
SELECT JSON_UNQUOTE(JSON_EXTRACT(inventor, $[*].employeeId)) AS names from biz_patent; 再用 FIND_IN_SET 查询
select a.id,a.patent_type,a.patent_name,
(SELECT GROUP_CONCAT(DISTINCT name) FROM biz_employee WHERE FIND_IN_SET(id, REPLACE(TRIM(REGEXP_REPLACE(JSON_UNQUOTE(JSON_EXTRACT(a.inventor, $[*].employeeId)), \\[|\\], )) , ,)) ) as inventor,
a.patent_application_date
from biz_patent a
where JSON_CONTAINS(inventor, CONCAT({employeeId: , 3 , }));