Mysql 5.7版本以上 对JSON类型的一些操作函数整理

--字符串转JSON
cast(字符串 as JSON)
例子:
cast('{"aa":"dd"}' as JSON)
cast('[{"aa":"dd"},{"cc":"dd"}]' as JSON)

--查询JSON字段中的某个属性
方法一:
select json字段名 -> '$.属性名' from 表名 where 查询条件
例子:
SELECT field -> '$.param' FROM table t WHERE condition

方法二:
select JSON_EXTRACT(字段名,'$[0].属性名') from 表名 where 查询条件
例子:
SELECT JSON_EXTRACT(field,'$[0].param') from table where condition


--新增JSON字段中的某个属性
UPDATE 表名 SET 字段名 = JSON_SET(字段名,'$.属性名',cast(新增的字符串 as JSON)) where 查询条件
例子:
UPDATE table SET field = JSON_SET(field,'$.param',cast('{"aa":"vv"}' as JSON)) WHERE condition

--新增在JSON字段的数组后面添加数据
UPDATE 表名 SET 字段名 = JSON_ARRAY_APPEND(字段名,'$.属性名',cast(新增的字符串 as JSON)) where 查询条件
例子:
UPDATE table SET field = JSON_ARRAY_APPEND(field,'$.param',cast('{"aa":"vv"}' as JSON)) WHERE condition

--查看该属性是否存在 存在为1 不存在为0
SELECT JSON_CONTAINS_PATH(字段名,'all','$[0].属性名') FROM 表名
例子:
SELECT JSON_CONTAINS_PATH(field,'all','$[0].param') FROM table

--删除JSON字段的某个属性
UPDATE 表名 SET 字段名 = JSON_REMOVE(字段名,'$.属性名') where 查询条件
例子:
UPDATE table SET field = JSON_REMOVE(field,'$.param') WHERE condition

--替代JSON字段的某个属性的全部的值
UPDATE 表名 SET 字段名 = JSON_REPLACE(字段名,'$.属性名',cast(新增的字符串 as JSON)) where 查询条件
例子:
UPDATE table SET field = JSON_REPLACE(field,'$.param',cast('{"aa":"vv"}' as JSON)) WHERE condition

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值