【笔记】MySQL直接操作JSON
前言
MySQL直接操作JSON
定义表字段类型为JSON
- 8.x可以使用
JSON类型,自带JSON格式校验 - 5.x可以使用任意文本类型(如
TEXT类型)保存JSON格式字符串
1 | CREATE TABLE `table` ( |
校验是否是合法JSON数据
1 | SELECT JSON_VALID('{"key": "value"}'); |
创建JSON对象
1 | SELECT JSON_OBJECT('key', 'value'); // {"key", "value"} |
创建JSON数组
1 | SELECT JSON_ARRAY('value1', 'value2'); // ["value1", "value2"] |
根据键修改指定值
- 通过
JSON_SET修改JSON中指定键的值
1 | UPDATE table SET data = JSON_SET(data, '$.key', 'new_value'); |
修改的新值也是JSON
- 通过
CAST()转换为JSON数据
1 | UPDATE table SET data = JSON_SET(data, '$.key', CAST('{}' AS JSON)); |
根据键查询指定值
1 | SELECT JSON_EXTRACT(data, '$.key'); |
1 | SELECT JSON_EXTRACT(data, '$.key_1', '$.key_2'); |