json_set()这个函数在我看来,好像具备两个作用,一个是插入作用,能替代json_insert()函数,另一个就是替换作用,能替代json_replace()函数。下面具体来看:
插入作用:
数据库中 id =16的数据如下所示:
使用json_insert()函数后,如下所示,插入了age:30
接下来使用json_set()函数,向 id =16的data中添加hobby,(注:这里可能有些伙伴会好奇,上面添加了age,我再添加一个hobby,为什么age不见了,这是因为我用的是select ,这只是暂存在内存当中,并没有改变数据库中的data,如果想要改变就要updata进行更新修改)可见直接插入到后面,起到插入的作用。
替换作用:
下面建了一个数组,以数组为例:
把数组下标为2的元素更换为了4444
运用json_replace()函数进行一下:
同样达到预期。
如果这里写一个json_set(@a,’$[10]’,3456789)会如何?
我们发现直接插入到数组尾部。
总结:
使用json_set()函数时,如果对象或者数组里面有这个数据,就会发生替换,如果没有,就会在其后面插入此条数据。