news 2026/4/18 13:01:47

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/4/18 3:50:28

Open-AutoGLM数据安全最后防线,如何构建不可绕过的恢复屏障?

第一章:Open-AutoGLM数据安全最后防线,如何构建不可绕过的恢复屏障? 在AI驱动的自动化系统中,Open-AutoGLM作为核心推理引擎,其数据完整性与恢复能力直接决定系统的可信边界。当遭遇恶意篡改、逻辑漏洞或灾难性故障时&…

作者头像 李华
网站建设 2026/4/18 3:48:25

从0到1搭建智能KTV预订系统,你必须掌握的5个关键技术点

第一章:从0到1构建智能KTV预订系统的整体架构设计构建一个高效、可扩展的智能KTV预订系统,需综合考虑用户交互、业务逻辑与数据管理的协同运作。系统采用前后端分离架构,前端基于Vue.js实现响应式界面,后端使用Go语言配合Gin框架提…

作者头像 李华
网站建设 2026/4/18 3:47:28

Open-AutoGLM健身卡预约实战指南(从配置到上线全流程曝光)

第一章:Open-AutoGLM健身卡预约实战指南概述本指南旨在帮助开发者与技术爱好者掌握如何使用 Open-AutoGLM 框架实现自动化健身卡预约任务。该框架结合了自然语言理解与自动化流程执行能力,能够根据用户指令智能解析预约需求,并驱动浏览器完成…

作者头像 李华
网站建设 2026/4/17 13:11:44

仅限内部流传的Open-AutoGLM导出模板曝光:5种高危场景应对策略首次公开

第一章:Open-AutoGLM导出模板核心架构解析 Open-AutoGLM 是面向大语言模型自动化任务生成与导出的开源框架,其导出模板系统采用模块化设计,支持灵活的任务配置、数据结构映射与多格式输出。该架构以声明式配置为核心,通过标准化接…

作者头像 李华
网站建设 2026/4/18 8:09:09

仅需3步!Open-AutoGLM快速部署实现文档自动生成(附完整配置模板)

第一章:Open-AutoGLM文档自动生成技术概述Open-AutoGLM 是一种基于大语言模型的自动化文档生成框架,专注于从源代码、注释及结构化元数据中智能提取信息,并生成高质量的技术文档。该系统结合了自然语言理解与程序分析技术,能够适应…

作者头像 李华
网站建设 2026/4/18 5:42:10

Open-AutoGLM入门指南(新手避坑全攻略)

第一章:Open-AutoGLM入门指南概述Open-AutoGLM 是一个开源的自动化通用语言模型(GLM)集成框架,旨在简化大语言模型在实际业务场景中的部署与调用流程。该框架支持多平台模型接入、任务自动调度以及结果智能解析,适用于…

作者头像 李华