以前一直用in 也没学过sql什么的就是照着用,网上说exists效率高想改改,但是思想就是变不过去,想大家来个例子。例如select * from table_1 where id in(‘1’,‘3’,‘5’)上面的如何改写 希望能帮忙写下
解决方案 »
- oracle 链接 Mysql 乱码问题请教
- oracle11g如何在客户端备份数据库
- win7 64位安装oracle 12C 失败?
- sql怎么查看数据库中对象 在线等!!急
- NOARCHIVELOG Mode下要online redo logs有什莫作用?
- dbms_job.submit的问题
- 问个很菜的问题"Oracle executables" 这是什么意思啊
- 刚新建的数据库不能登陆,提示错误ORA-12637:包接受失败
- 高手,请问能不能写个函数判断一个表是不是存在
- 模拟 Oracle 树遍历查询的实现。给高分 !!!
- ora 文字格式与字符串不配
- ora-00907: 缺失右括号
数据集比较大时用exists效率比较高
比如a表和b表,b表较大
select * from a
where exists(select 1 from b where id=a.id)
性能要比
select * from a
where id in (select id from b)
好exists验证存在性,会走索引。而in要对后面的表进行全表扫描
where exists(select 1 from table_1 where id = 1 or id = 2 or id =3);
楼主可以参考下这篇文章http://blog.csdn.net/wh62592855/archive/2009/11/13/4806741.aspx