天天看点

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、josn_remove、json_replace、json_set

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set
  1. json_insert就是向json中插入,如果不存在则插入,存在则忽略
  2. json_replace就是替换json中的项,如果不存在则忽略,存在则替换
  3. json_set结合前面俩个,存在则替换,不存在则插入
  4. json_merge_patch多个json进行合并,相同键名,后面的覆盖前面的,如果值是对象,则递归进行处理
  5. json_merge_preserve多个json进行合并,相同键名,则键值组成新的对象
  6. json_remove移除掉json某一项

数据表

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

json_insert

例一

select json_insert(info, '$.age', 26) from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

json中并不存在age键名,则插入

例二

select json_insert(info, '$.name', 'swk') from member;

json中存在name键名,则忽略

json_replace

select json_replace(info, '$.name', 'swk') from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

json中存在name键名,则进行替换

select json_replace(info, '$.age', 26) from member;

json中不存在age键名,则忽略

json_set

select json_set(info, '$.name', 'swk') from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

select json_set(info, '$.age', 26) from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

json中不存在age键名,则插入

json_merge_patch

select json_merge_patch(info, '{"name":"swk","age":26}') from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

json合并,如果存在相同键名,则后面的覆盖前面的,如果值是对象,会递归

json_merge_preserve

select json_merge_preserve(info, '{"name":"swk","age":26}') from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

json合并,如果存在相同键名,则组成新的对象

json_remove

select json_remove(info, '$.name') from member;

【2021/12/19】MySQL的json查询之json_insert、json_merge_patch、json_merge_preserve、json_remove、json_replace、json_set

移除json中指定项

留言

点击留言

继续阅读