mysql数据库中某个字段存的是json数据,如何对json数据中的数据进行操作?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库中某个字段存的是json数据,如何对json数据中的数据进行操作?相关的知识,希望对你有一定的参考价值。

如:product 表的的content字段存的json为
[ "sort": "1", "catentryId": "10001", "sort": "2","catentryId": "10002"]
如何进行增删改

这个可以吧json格式的字符串解析成数组json_decode()函数,变成数组以后就可以方便操作了,可以删除数组中的任意一项,也可以增加一项比如:array_push($data,['sort'=>3,'catentryId'=>10003]),再变成json格式的存入数据库。方法有多种,这里简单的示例下 参考技术A 先取出来,然后在代码中转成json,增删改操作完后再存进去 参考技术B 取出来 ,然后json_decode('XXX');这样就变成数组了 参考技术C 只能取出来再改,改完再塞回去 参考技术D

    取出来

    修改

    存储

查询数据库中指定字段中存储的json数据是不是包含某个值

参考技术A 正常来说,使用mysql的JSON_EXTRACT()处理函数就可以了,例如:

SELECT JSON_EXTRACT('"id":"3"', "$.id")

;可以查询出id字段中包含id为3的,但是会有一个问题,当mysql的使用工具navicat版本过低时,不支持转码或者查询,会报错,这是需要在JSON_EXTRACT外面套一层JSON_UNQUOTE 即可正常使用,语句如下:

SELECT JSON_UNQUOTE(JSON_EXTRACT('"id":"3"', "$.id"));

以上是关于mysql数据库中某个字段存的是json数据,如何对json数据中的数据进行操作?的主要内容,如果未能解决你的问题,请参考以下文章

查询数据库中指定字段中存储的json数据是不是包含某个值

PHP 如何从mysql 一个字段中提取内容并过滤所有HTML代码,然後存入另一个字段内?

mysql数据库基础

如何批量删除mysql某个字段的某个值?

数据库某个字段值是一个数组怎么查出来?

mysql json类型的一些说明