news 2026/5/6 19:41:16

in 子查询 or in 子查询改写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
in 子查询 or in 子查询改写

1、 问题语句

select t1.c1,t1.c2,t1.c3 from t1 where(t1.gid in(select gid from t2 where d1 ='C2')or t1.gid in(select gid from t3 where e1 ='C2'))and(t1.c1 ='C4'or t1.c1 is null)and(t1.c2 liketrim('D4%')or t1.c3 liketrim('E7%'));

计划:

这里的in子查询+or+in子查询做成表达式,无法先过滤,这里in子查询里面的条件过滤性较好,可以利用索引先过滤,之前的文章中有提过or条件可以改写成union all,这里可以考虑改写成union all。

2、改写

select t1.c1,t1.c2,t1.c3 from t1 where(t1.gid in(select gid from t2 where d1 ='C2'union all select gid from t3 where e1 ='C2'))and(nvl(t1.c1,'C4')='C4')and(t1.c2 liketrim('D4%')or t1.c3 liketrim('E7%'));

计划:

这里能够很好的利用索引先过滤,这里能够很好的利用索引先过滤,另外in也可以改写成exists,于是这个改写又有另一种改写方法

select t1.c1,t1.c2,t1.c3 from t1 where exists(select 1 from(select gid from t2 where d1 ='C2'union all select gid from t3 where e1 ='C2')A where t1.gid = A.gid)and(nvl(t1.c1,'C4')='C4')and(t1.c2 liketrim('D4%')or t1.c3 liketrim('E7%'));

计划:

两种改写方法计划一致,性能都提升几十倍。

3、小结

or条件过滤性很好就比较适合做union all,这个例子也是对前面or关联案例的补充。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 22:53:59

还在手动排期?Open-AutoGLM让宠物美容预约全自动,省时又精准

第一章:宠物美容预约的自动化变革随着宠物经济的迅猛发展,传统宠物美容门店面临预约混乱、资源调度低效等问题。自动化技术的引入正在彻底改变这一行业的工作模式,通过数字化系统实现服务流程的精准管理与客户体验的全面提升。在线预约系统的…

作者头像 李华
网站建设 2026/5/1 23:40:25

对比学习新方法改进多模态数据表示

许多人工智能的最新进展都源于表示学习:机器学习模型学习将数据项表示为多维空间中的向量,其中向量之间的几何关系对应着项目之间的语义关系。某中心M5团队致力于构建与某中心商店相关数据的通用语义表示——产品描述、查询、评论等——这些表示可供某中…

作者头像 李华
网站建设 2026/5/5 13:52:54

Open-AutoGLM如何重塑宠物经济:5大核心技术驱动智能服务预订升级

第一章:Open-AutoGLM如何重塑宠物经济:5大核心技术驱动智能服务预订升级随着宠物经济的蓬勃发展,智能化服务预订系统正成为提升用户体验的关键。Open-AutoGLM 作为新一代生成式语言模型驱动平台,深度融合 AI 技术与宠物服务场景&a…

作者头像 李华
网站建设 2026/5/6 16:23:04

Open-AutoGLM美甲服务上线背后:9个关键技术决策让系统稳定运行

第一章:Open-AutoGLM美甲服务上线背景与整体架构Open-AutoGLM美甲服务平台是基于多模态大模型技术构建的智能化美甲设计与推荐系统,旨在通过AI驱动个性化图案生成、色彩搭配建议及用户偏好学习,提升美甲行业的数字化服务水平。该平台融合了自…

作者头像 李华
网站建设 2026/5/6 5:24:48

Open-AutoGLM保姆级教程,新手也能当天上线AI视频生产线

第一章:Open-AutoGLM保姆级教程概述Open-AutoGLM 是一个开源的自动化自然语言处理框架,专为简化大语言模型(LLM)任务流程而设计。它支持任务自动拆解、工具调用、结果生成与反馈优化,适用于智能客服、文档摘要、代码生…

作者头像 李华
网站建设 2026/5/3 10:30:17

为什么顶尖团队都在用Open-AutoGLM做自动教学?真相令人震惊

第一章:为什么顶尖团队都在用Open-AutoGLM做自动教学?真相令人震惊自动化教学的新范式 Open-AutoGLM 正在重新定义教育技术的边界。它不仅是一个开源的大语言模型框架,更是一套完整的自动教学引擎,能够根据学习者的行为数据动态生…

作者头像 李华