Mysql提取JSON数组中的某⼀个属性或某⼀个属性列表
场景:
昨天为解决业务需求,需要在mysql 数据库中类型为json字段的列中提取指定的属性列表,因为之前对mysql数据库中操作json数据
的经验⽐较少,特此记录下,以备以后回顾。
⾸先,展⽰下我数据库中保存的数据 (数据已做脱敏处理)
[{"id": "dad014a2f9594a62ae3f7be3", "del": 10, "code": "XC021********","orgId": "5e0364ff8139f600163ff", "state": 10, "staffId": "1b8cc278f7673793327f 业务需求,提取上述数据中的 subjectId 字段列表,实现sql如下:
SELECT json_extract( subject_json, '$[*].subjectId' ) AS subjectIds FROM t;
执⾏结果: ["f107fe51abf9410df07a1a", "cb0f52a4e0d71aed75f37a156"] ,获得上述JSONArray 中每⼀个 JsonObject 中 key 为 subjectId 的值数组
json值的类型有哪些解析:
1. subject_json 为上述数据所在字段。
2. json_extract :mysql版本5.7及以上,⽤于取出 json 串中某个key对应的值
$[*].subjectId 表⽰获取当前字段内容下的所有 subjectId,如果只是想获取某⼀条,可以带上当前数据在数组中的序号获取,
⽐如:获取 第⼀条中的 subjectId ,$[1].subjectId
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论