本章主要讲解 MySQL8 数据库的 JSON 数据类型和相关的 JSON 语法,例如使用 JSON 函数进行创建、修改、搜索和查看属性等操作,以下每一个 JSON 函数都有一个在线示例可以参考,不同的在线示例根据作用进行分类介绍。
select json_array(123, 'try8', null, false);
select json_object('try8_id', 1, 'try8_name', '试试吧');
select json_quote('"null"');
select try8_col1, json_arrayagg(try8_col2) from try8_tb group by try8_col1;
select try8_name, json_objectagg(try8_col1, try8_col2) from try8_tb group by try8_name;
select json_contains('[1, 2, {"try8": 3}]', '1')
select json_contains_path('{"a": 1, "b": 2, "c": {"d": 4}}', 'one', '$.a', '$.b');
select json_contains_path('{"a": 1, "b": 2, "c": {"d": 4}}', 'all', '$.a', '$.e');
select json_extract('[1, 2, {"try8": 3}]', '$[2]');
select try8_col->'$.json_col' from try8_tb where 1 = 1;
select try8_col->>'$.json_col' from try8_tb where 1 = 1;
select json_keys('{"x": 1, "y": 2, "z": 3}');
select json_overlaps('[1, 2, 3]', '[3, 4, 5]');
select json_search('{"x": 1, "y": 2}', 'one', '1'), json_search('{"x": 1, "y": 2}', 'all', '1');
select json_value('[{"id": 1, "name": "try8_1"}, {"id": 2, "name": "try8_2"}]', '$[0].name');
select 1 member of('[1, "a"]'), 'a' member of('[1, "a"]');
select json_array_append('[1, 2, 3]', '$', 4);
select json_array_append('1, [2, 3]', '$[1]', 4);
select json_array_append('{"name": ["hello"]}', '$.name', "try8");
select json_array_insert('[1, [2, 3]]', '$[0]', 0);
select json_insert('[1, [2, 3], {"a": [4, 5]}]', '$[3]', 6);
select json_merge('[1, 2]', '[2, 3]', '[3, 4, 5]');
select json_merge_patch('{"x": 1, "z": 3}', '{"x": 2, "y": 3}');
select json_merge_preserve('[1, 2]', '[2, 3]', '[3, 4, 5]');
select json_merge_preserve('{"x": 1}', '{"x": 2, "y": 3}');
select json_merge_preserve('1', 'true', '"hello"', 'null');
select json_merge_preserve('{"x": 1}', '[1, 2, 3]');
select json_remove('[0, 1, 2, [3, 4]]', '$[0]', '$[2]');
select json_remove('{"x": 1, "y": 2}', '$.x');
select json_replace('[1, [2, 3]]', '$[0]', 0);
select json_set('{"x": 1}', '$.x', '10', '$.y', '20');
select json_unquote('"try8"');
select json_depth('{}');
select json_depth('{"try8": "试试吧"}');
select json_type('{"try8": "试试吧"}');
select json_valid('{"try8": "试试吧"}');