MySQL 针对JSON类型字段数据进行提取和查询
前言
请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、
提示:以下是本篇文章正文内容,下面案例可供参考
背景:
当我们使用SQL查询时,想对数据字段中JOSN串进行特殊处理,以下为简单列举
#使用函数查询:JSON_CONTAINS(字段,JSON_OBJECT('json属性', '内容'))
select JSON_EXTRACT(password, '$.applCde') as applCde,JSON_EXTRACT(password, '$.applyAmt') as applyAmt from user where id='9'
#使用 json字段名->’$.json属性’ 进行查询条
select password->'$.applCde' as applCde,password->'$.applyAmt' as applyAmt from user where id='9'
JSON数据双引号处理
平常的json数据在查询出来的时候 是有双引号的
第一种:
#使用`TRIM函数`去除双引号之后
select TRIM(BOTH '"' FROM JSON_EXTRACT(password, '$.applCde')) as applCde,JSON_EXTRACT(password, '$.applyAmt') as applyAmt from user where id='9'
第二种:
select TRIM(BOTH '"' from `password`->'$.applCde') as num from user WHERE id='9'
第三种:
#通过JSON_UNQUOTE 获取的json数据是不带双引号的
select JSON_UNQUOTE(`password`->'$.applCde') as num FROM user where id='9';
第四种:
select `password`->>'$.applCde' as num from user where id='9'