转载:http://www.jianshu.com/p/a7530b9845bf

子查询就是指在一个select语句中嵌套另一个select语句。
any,in,some,all分别是子查询关键词之一,他们进行子查询的语法如下:

operand comparison_operator any (subquery);
operand in (subquery);
operand coparison_operator some (subquery);
operand comparison_operator all (subquery);

any,all关键字必须与一个比较操作符一起使用。any关键词可以理解为“对于子查询返回的列中的任一数值,如果比较结果为true,则返回true”。
例如:

select s1 from t1 where s1 > any (select s1 from t2);

假设表t1中有一行包含(10),t2包含(21,14,6),则表达式为true;如果t2包含(20,10),或者表t2为空表,则表达式为false。如果表t2包含(null,null,null),则表达式为unkonwn。

all的意思是“对于子查询返回的列中的所有值,如果比较结果为true,则返回true”
例如:

select s1 from t1 where s1 > all(select s1 from t2);

假设表t1中有一行包含(10)。如果表t2包含(-5,0,+5),则表达式为true,因为10比t2中的查出的所有三个值大。如果表t2包含(12,6,null,-100),则表达式为false,因为t2中有一个值12大于10。如果表t2包含(0,null,1),则表达式为unknown。如果t2为空表,则结果为true。

not in 是 “<>all”的别名,用法相同。

语句in 与“=any”是相同的。

例如:

select s1 from t1 where s1 = any (select s1 from t2);
select s1 from t1 where s1 in (select s1 from t2);

语句some是any的别名,用法相同。
例如:

select s1 from t1 where s1 <> any (select s1 from t2);
select s1 from t1 where s1 <> some (select s1 from t2);

在上述查询中some理解上就容易了“表t1中有部分s1与t2表中的s1不相等”,这种语句用any理解就有错了。

mysql之any,in,some,all的区别相关推荐

  1. mysql int(3)与int(11)的区别详解

    这篇文章主要介绍了mysql int(3)与int(11)的区别详解的相关资料,需要的朋友可以参考下 mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zero ...

  2. mysql的binary、char、varchar区别

    mysql的binary.char.varchar区别 分类: Mysql/postgreSQL 2013-09-24 18:11:46 char使用固定长度的空间进行存储,char(4)存储4个字符 ...

  3. MySQL存储引擎中MyISAM和InnoDB区别

    转载自  MySQL存储引擎中MyISAM和InnoDB区别 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应 ...

  4. MySQL 无符号和有符号的区别

    随笔记录: mysql无符号和有符号的区别 无符号unsigned 表示设置的的数据为0或者正数: 有符号则可以是负数 -: 内存占比 有符号 0-255 无符号 -127~127

  5. mysql两个空值相同吗_你知道mysql中空值和null值的区别吗

    前言 最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值.以下带来示例给大家进行讲解. 建表 create table tes ...

  6. 【myISAM和innoDB】mySql的引擎myisam和innodb的区别/mysiam(mysql插入速度优化)

    目录 Myisam 和Innodb 特点和擅长 Myisam 和Innodb 数据存储区别 Myisam引擎(非聚集索引--叶子节点存储数据地址的指针) Innodb引擎(聚集索引---叶子节点的da ...

  7. service mysql restart 和service mysqld restart 的区别

    service mysql restart 和service mysqld restart 的区别不是由于mysql版本的原因,而是配置的原因. mysql自带一个服务脚本,位置再MySQL的安装目录 ...

  8. Mysql唯一索引和普通索引的区别,

    文章目录 Mysql唯一索引和普通索引的区别,那种速度快一点,原因是啥 理由说明: 结论: 1 普通索引 2 唯一索引 注意:唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(log ...

  9. mysql中from unixtime,mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

    摘要 腾兴网为您分享:mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别,作业大师,智慧大学,优化大师,先游等软件知识,以及流星蝴蝶剑,升学指导网软件,承德大宗,q ...

  10. mysql存储引擎InnoDB与MyISAM的区别

    mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...

最新文章

  1. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)E: U
  2. Django缓存和信号
  3. 通过sql语句对MySql数据库的基本操作
  4. Lua 之string库
  5. 【11GR2 RAC】如何开启归档和FLASHBACK
  6. 14. 最长公共前缀
  7. Java ClassLoader getPackage()方法与示例
  8. 水晶報表:金額轉換大寫12/8
  9. 【哈佛商评】好编辑成就内容营销
  10. 【转】兄弟俩玩的2000亿美元的公司,盖茨与鲍尔默:微软双雄上演终极接力
  11. 多所985、211高校教授被通报!国自然发布处理决定!
  12. SplitContainer控件扩展之收缩面板
  13. 在职研一英语课件难句整理
  14. php爬拉钩数据,拉勾网数据两种爬取
  15. echarts饼图自动动画_echarts实时旋转饼图效果特效
  16. 语料标注平台BRAT安装说明
  17. 在Windows 7和Vista中禁用程序兼容性助手
  18. Swift不深入只浅出入门教程-孟祥月-专题视频课程
  19. 琼斯是计算体心立方弹性模量_《固体物理学》概念和习题 答案 ()
  20. 为什么无线AP标称的速率和实际速率不一致?(空口速率)

热门文章

  1. 什么是Microsoft(Office)365?
  2. 关于对CSS中BFC (块级格式化上下文) 的理解
  3. JavaSE-No.8——Java三大特征之多态
  4. ★6-2 消除连续字符(升序)
  5. 加工中心面板操作示意图
  6. 国际数据挖掘顶会 KDD 2019 应用方向冠亚军论文《Actions Speak Louder than Goals: Valuing Player Actions in Soccer》解读
  7. JNDI, What is JNDI?
  8. 律师事务所管理系统-JAVA【毕业设计、快速开发、源码、开题报告】
  9. Zemax学习笔记(10)- 牛顿望远镜实例
  10. H264 16 × 16 luma prediction modes