主页 > IT业界  > 

MySQL修改JSON格式数据示例

MySQL修改JSON格式数据示例

最近发现有个数据是用JSON格式直接存到表格里面的,大概就是下面这样的

然后需要修改里面某个属性的值,一开始我想的是 REPLACE 替换

UPDATE test_1 SET content = REPLACE(content, '{"age": 15, "name": "w5"}', '{"age": 20, "name": "20"}')

可以发现也能实现

但总觉得不大对劲,所以去搜了一下,发现两个以前没用过的方法 JSON_REPLACE 和 JSON_SET

我们先来试一下 JSON_REPLACE

UPDATE test_1 SET content = JSON_REPLACE(content, '$.name', "w5") WHERE id = 3

再来试下 JSON_SET

UPDATE test_1 SET content = JSON_SET(content, '$.age', 15) WHERE id = 3

发现这三个都能实现我们的目的,那这三个有什么区别

特性REPLACEJSON_SETJSON_REPLACE作用对象字符串中的子字符串JSON 数据中的键值对JSON 数据中的已存在键值对是否考虑 JSON 结构不考虑,简单的字符替换处理 JSON 数据,修改或新增键值对处理 JSON 数据,仅替换已存在的键值对新增键值对不支持支持,如果路径不存在会新增不支持,路径不存在时不做任何操作修改现有键值对不适用于 JSON 键值对的修改支持,修改路径存在的键值对支持,只修改路径存在的键值对适用场景字符串替换,适合非结构化数据修改 JSON 数据或新增键值对只需要替换 JSON 中已存在的键值对时使用是否破坏数据结构可能会破坏 JSON 结构不会破坏 JSON 结构不会破坏 JSON 结构,确保数据一致性
标签:

MySQL修改JSON格式数据示例由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“MySQL修改JSON格式数据示例