mysql取json数组中的数据
mysql取json数组中的数据
·
取数的逻辑主要是:如果是数组,那就先算好取第几个数,取数据时记得加上下标:
`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;
更多推荐
所有评论(0)