取数的逻辑主要是:如果是数组,那就先算好取第几个数,取数据时记得加上下标:

 `JSON_UNQUOTE(JSON_EXTRACT(data, '$[0].details[0]'))`

如果不是数组,取key即可

JSON_UNQUOTE(JSON_EXTRACT(data, '$[0].sp_status'))  

1、取json数组中倒数一个数据

  JSON_EXTRACT(sp_record, CONCAT('$[', JSON_LENGTH(sp_record) - 1, ']'))     data

2.取多个嵌套数据

  JSON_UNQUOTE(JSON_EXTRACT(apply_data, '$[0].contents[2].value[0].text'))   leaver
select sp_no,
       sp_name,
       applyer,
       apply_time,
       JSON_UNQUOTE(JSON_EXTRACT(data, '$[0].details[0].approver.userid'))                            approver,
       JSON_UNQUOTE(JSON_EXTRACT(data, '$[0].details[0].sptime'))                                  approver_time,
       leaver,
       JSON_UNQUOTE(JSON_EXTRACT(data, '$[0].sp_status'))                                             sp_status
from (
         SELECT sp_no,
                sp_name,
                apply_time,
                JSON_UNQUOTE(JSON_EXTRACT(applyer, '$.userid')) AS                         applyer,
                JSON_EXTRACT(sp_record, CONCAT('$[', JSON_LENGTH(sp_record) - 1, ']'))     data,
                JSON_UNQUOTE(JSON_EXTRACT(apply_data, '$[0].contents[2].value[0].text'))   leaver,
                sp_record
         FROM sp_no_info
         WHERE sp_name LIKE '%離職帳號處理申請%'
     ) t1;
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐