exists和in的区别很小,几乎可以等价,但是sql优化中往往会注重效率问题,今天咱们就来说说exists和in的区别。
exists语法:
select … from table where exists (子查询)
将主查询的结果,放到子查询结果中进行校验,如子查询有数据,则校验成功,那么符合校验,保留数据。

create table teacher(tid int(3),tname varchar(20),tcid int(3));insert into teacher values(1,'tz',1);insert into teacher values(2,'tw',2);insert into teacher values(3,'tl',3);
select tname from teacher exists(select * from teacher);

此sql返回为空,因为子查询并不存在这样的数据。
in语法:
select … from table where 字段 in (子查询)

select ..from table where tid in (1,3,5) ;
select tname from teacher where exists (select * from teacher);
select * from teacher where tname in (select tname from teacher where tid = 3);

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. vue 基础语法及购物车小案例
  3. Android(安卓)- Manifest 文件 详解
  4. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  5. Selector、shape详解(一)
  6. android2.2资源文件详解4--menu文件夹下的菜单定义
  7. Android发送短信方法实例详解
  8. Android(安卓)读取资源文件实例详解
  9. 详解Android中的屏幕方向

随机推荐

  1. padding和margin的区别及其属性
  2. [Android][设置最小(大)宽高]
  3. Android(安卓)Activity 和 Task 设计指导
  4. Android中的人脸检测(静态和动态)
  5. Android: 如何创建AVD以及选择合适target
  6. Android(安卓)AIDL实现调用第三方登录
  7. Android 的属性系统
  8. 专家专栏:Android层次化安全架构及核心组
  9. Android开发笔记(一)
  10. Android源码博文集锦2