子查询就是指在一个select语句中嵌套另一个select语句。
any,in,some,all分别是子查询关键词之一,

any 可以与=、>、>=、<、<=、<>结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。

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理解就有错了。

转载于:https://www.cnblogs.com/qlqwjy/p/9193752.html

【MySQL】mysql中any,in,some,all的区别相关推荐

  1. mysql主从中异步和半同步的区别

    MySQL主从复制,默认是异步复制.异步复制,即master执行完事物并提交后,二进制日志记录完这些更新操作后,就又开始下一批事物.并不关心这些更新是否被复制到从上. 而半同步复制则相反,它需要等待至 ...

  2. mysql embed_html中object和embed标签的区别

    ♦object定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. ♦ 标签用于包含对象,比如 ...

  3. mysql数据库中 join 和 left join 的区别

    join等价于inner join内连接抄,是返回两个表中都有的符合条件的行. left join左连接,是返回左袭表知中所有的行及右表中符合条件的行. right join右连接,是返回右表中所有的 ...

  4. bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...

    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...

  5. mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...

  6. mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速

    有没有一种很好的方法来删除很多记录而不会减慢网站的速度? 我需要从没有索引和主键的MySQL表中删除数百万条记录.我阅读了SO和网上的各种教程,基本策略是限制删除查询,在删除之间休眠一两秒钟,然后重复 ...

  7. 在MySQL数据库中,这4种方式可以避免重复的插入数据!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:小小猿爱嘻嘻 wukong.com/question/674 ...

  8. MySQL数据库中默认事务隔离级别是?

    MySQL数据库中默认事务隔离级别是? 事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到 ...

  9. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣

    mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...

  10. Mysql 事务中Update 会锁表吗?

    Mysql 事务中Update 会锁表吗? 两种情况: 1.带索引 2.不带索引 前提介绍: 方式:采用命令行的方式来模拟 1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开 ...

最新文章

  1. 2020ICPC·小米 网络选拔赛第一场(D. Router Mesh)
  2. Redis读写分离技术架构解析
  3. Spark SQL(七)之基于用户的相似度公式
  4. 第九十一期:架构设计常用到的10种设计模式,你都知道吗?
  5. 浙江科技学院计算机辅助教育试卷,(下册).-浙江科技学院经济与管理学院.doc
  6. string字符串的高级用法
  7. 【原】GitHub使用教程
  8. Python3爬虫韩寒新浪博客文章
  9. 黑盒测试设计专题:正交试验
  10. 经典小游戏开发思路和算法之拼图(1)
  11. html网页表格相同行自动合并,jQuery实现HTML表格单元格的合并功能
  12. python分析txt文件_python解析文本文件
  13. 为什么跑椭圆机比跑步更累
  14. 八、Pytorch学习之十九种损失函数
  15. html怎么把按钮做成可以百度,网站网页中加入各种分享按钮功能 百度分享
  16. 谷歌、互联网股票与以太坊
  17. 写给互联网大厂员工的真心话,醍醐灌顶!
  18. Interview Vocabulary Summary
  19. C++错误解决:double free or corruption (out): 0x00000000011abe70 ***
  20. data analysis (summary next step)

热门文章

  1. 损失函数的意义和作用_BN究竟起了什么作用?一个闭门造车的分析
  2. python文本字符串比对_[Python] 利用HTML页面查看字符串差异
  3. python 清华镜像_树莓派raspberry4B入坑指南 part-1 virtualenv安装python
  4. pandas df中有几个数组_还在抱怨pandas运行速度慢?这几个方法会颠覆你的看法
  5. mysql urlencode 中文_php url中文转码的方法
  6. [原创]Linux系统启动过程分析
  7. 数据挖掘原理与算法_古今争翘,一首机器学习与数据挖掘神曲,共11.99G送你直上云霄...
  8. python生成折线图怎么对特定点做颜色_python库matplotlib绘制折线图,散点图以及设置样式...
  9. 【网络安全】PGP/GPG优质教程汇总
  10. 【浙江省第16届省赛J:】Welcome Party(并查集+优先队列bfs遍历)