如何解决如果字符串返回,则 mySQL CASE 语句重新查询更深一层的节点
我有一个 mySQL JSON 数据存储查询,它会引入一个控件列表,如下所示:
select t1.id,t2.title from (SELECT controllist.id FROM profiles,JSON_TABLE(json_data,'$.profile.imports[0].include."id-selectors"[*]' COLUMNS (id VARCHAR(140) PATH '$."control-id"')) controllist) t1,(SELECT grouplist.id,grouplist.title FROM oscal_rev5,'$.catalog.groups[*].controls[*]' COLUMNS (id VARCHAR(140) PATH '$.id',class VARCHAR(20) PATH '$.class',title VARCHAR(80) PATH '$.title')) grouplist) t2 WHERE t1.id = t2.id
ac-1 政策和程序
ac-2 帐户管理
ac-3 访问强制
ac-6.7
ac-8 系统使用通知
我需要这样做,以便当返回的 id 包含句点(即“ac-6.7”)时,mySQL 使用更深一层的不同查询:
SELECT grouplist.id,'$.catalog.groups[0].controls[5].controls[*]' COLUMNS (id VARCHAR(140) PATH '$.id',title VARCHAR(80) PATH '$.title')) grouplist WHERE grouplist.id = 'ac-6.7'
拉入适当的标题。
这可以用 CASE 语句完成吗?
类似于:
select t1.id,title VARCHAR(80) PATH '$.title')) grouplist) t2 WHERE t1.id = t2.id
CASE CONTAINS (t1.id,".") THEN SELECT grouplist.id,title VARCHAR(80) PATH '$.title')) grouplist WHERE grouplist.id = t1.id
END;
我需要一些关于我是否采取正确方法的指导,我还需要一些帮助来确定在查询中放置此 CASE 语句的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。