MySQL中json_set()函数的使用

json_set()这个函数在我看来,好像具备两个作用,一个是插入作用,能替代json_insert()函数,另一个就是替换作用,能替代json_replace()函数。下面具体来看:

插入作用:

数据库中 id =16的数据如下所示:
MySQL中json_set()函数的使用_第1张图片
使用json_insert()函数后,如下所示,插入了age:30
MySQL中json_set()函数的使用_第2张图片
接下来使用json_set()函数,向 id =16的data中添加hobby,(注:这里可能有些伙伴会好奇,上面添加了age,我再添加一个hobby,为什么age不见了,这是因为我用的是select ,这只是暂存在内存当中,并没有改变数据库中的data,如果想要改变就要updata进行更新修改)可见直接插入到后面,起到插入的作用。
MySQL中json_set()函数的使用_第3张图片
替换作用:

下面建了一个数组,以数组为例:
MySQL中json_set()函数的使用_第4张图片
把数组下标为2的元素更换为了4444
MySQL中json_set()函数的使用_第5张图片
运用json_replace()函数进行一下:
MySQL中json_set()函数的使用_第6张图片
同样达到预期。

如果这里写一个json_set(@a,’$[10]’,3456789)会如何?
MySQL中json_set()函数的使用_第7张图片
我们发现直接插入到数组尾部。

总结:

使用json_set()函数时,如果对象或者数组里面有这个数据,就会发生替换,如果没有,就会在其后面插入此条数据。

你可能感兴趣的:(MYSQL之Json,数据库,mysql)