mysql从json字段拆成指定字段

可以使用以下的SQL语句来从一个JSON字段中取出goodsId、shareKey和channelId:

SELECT JSON_EXTRACT(字段名, ‘ . 字段内 j s o n 数据列’ ) a s A , J S O N E X T R A C T ( 字段名 , ‘ .字段内json数据列’) as A, JSON_EXTRACT(字段名, ‘ .字段内json数据列)asA,JSONEXTRACT(字段名,.字段内json数据列’) as B,
JSON_EXTRACT(字段名, ‘$.字段内json数据列’) as C
FROM mytable;

json_field表示包含JSON数据的字段,mytable则是包含该字段的表名,使用JSON_EXTRACT函数,可以从JSON字段中提取特定的值。第二个参数指定要提取的值的路径。语法为:$.key,其中key是想要提取的值的键名。

去除双引号
如果JSON字段值包含双引号,并且不希望在查询结果中返回双引号,则可以使用MySQL中的函数JSON_UNQUOTE函数来去掉双引号。

SELECT JSON_UNQUOTE(JSON_EXTRACT(字段名, ‘ . 字段内 j s o n 数据 列 ′ ) ) a s A , J S O N U N Q U O T E ( J S O N E X T R A C T ( 字段名 , ′ .字段内json数据列')) as A, JSON_UNQUOTE(JSON_EXTRACT(字段名, ' .字段内json数据))asA,JSONUNQUOTE(JSONEXTRACT(字段名,.字段内json数据列’)) as B,
JSON_UNQUOTE(JSON_EXTRACT(字段名, ‘$.字段内json数据列’)) as C
FROM 表名;

该语句中,使用了JSON_EXTRACT函数来提取JSON数据中的值,并将其作为参数传递给JSON_UNQUOTE函数,以去掉它们周围的双引号。最后,将结果作为新的列别名返回。

这样,即使JSON字段值包含双引号,查询结果也不会包含双引号。

注意: mysql版本5.7及以上版本使用,

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值