sql中all,any,some用法

简介:

--All:对所有数据都满足条件,整个条件才成立,例如:5大于所有返回的id

select *

from #A

where 5>All(select id from #A)

--Any:只要有一条数据满足条件,整个条件成立,例如:3大于1,2

select *

from #A

where 3>any(select id from #A)

详细

MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用

MySQL 列子查询

列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回。

一个列子查询的例子如下:

SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)

列子查询中使用 IN、ANY、SOME 和 ALL 操作符

由于列子查询返回的结果集是 N 行一列,因此不能直接使用 = > < >= <= <> 这些比较标量结果的操作符。在列子查询中可以使用 IN、ANY、SOME 和 ALL 操作符:

IN:在指定项内,同 IN(项1,项2,…)。

ANY:与比较操作符联合使用,表示与子查询返回的任何值比较为 TRUE ,则返回 TRUE 。

SOME:ANY 的别名,较少使用。

ALL:与比较操作符联合使用,表示与子查询返回的所有值比较都为 TRUE ,则返回 TRUE 。

下面是原始数据表:

table1:

s1

2

10

table2:

s2

5

12

20

ANY 操作符

ANY 关键字必须接在一个比较操作符的后面,表示与子查询返回的任何值比较为 TRUE ,则返回 TRUE 。一个 ANY 例子如下:

SELECT s1 FROM table1 WHERE s1 > ANY (SELECT s2 FROM table2)

查询返回结果如下所示:

s1

10

在子查询中,返回的是 table2 的所有 s2 列结果(5,12,20),然后将 table1 中的 s1 的值与之进行比较,只要大于 s2 的任何值即表示为 TRUE,符合查询条件。

IN 是 = ANY 的别名,二者相同,但 NOT IN 的别名却不是 <> ANY 而是 <> SOME。

特殊情况

如果 table2 为空表,则 ANY 后的结果为 FALSE;

如果子查询返回如 (NULL,NULL,NULL) 列为空的结果,则 ANY 后的结果为 UNKNOWN 。

ALL 操作符

ALL 关键字必须接在一个比较操作符的后面,表示与子查询返回的所有值比较为 TRUE ,则返回 TRUE 。一个 ALL 例子如下:

SELECT s1 FROM table1 WHERE s1 > ALL (SELECT s2 FROM table2)

该查询不会返回任何结果,因为 s1 中没有比 s2 所有值都大的值。

当然在该例子查询中,返回了 s2 的所有值,您可以在该子查询中添加任何条件以限制返回的查询结果而无需全部返回。

NOT IN 是 <> ALL 的别名,二者相同。

特殊情况

如果 table2 为空表,则 ALL 后的结果为 TRUE;

如果子查询返回如 (0,NULL,1) 这种尽管 s1 比返回结果都大,但有空行的结果,则 ALL 后的结果为 UNKNOWN 。

注意:对于 table2 空表的情况,下面的语句均返回 NULL:

SELECT s1 FROM table1 WHERE s1 > (SELECT s2 FROMtable2)SELECT s1 FROM table1 WHERE s1 > ALL (SELECT MAX(s1) FROM table2)

MYSQL数据库ANY的用法_数据库——IN、ANY、SOME 和 ALL 操作符的使用相关推荐

  1. mysql begin end 用法_数据库:Mysql中“select ... for update”排他锁分析

    作者:志波同学来源:https://mp.weixin.qq.com/s/8uH-7TD9ZRG4NCya80mOHg Mysql InnoDB 排他锁 用法:select - for update; ...

  2. mysql having用法_数据库having的用法

    数据库having的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库having的用法的用法,希望对你们有用. 数据库having的用法的用法如下: --sql中的group by 用法解析: - ...

  3. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句

    实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...

  4. mysql实验四图书视图_[数据库实验四.doc

    [数据库实验四 计算机与信息学院实验报告 系: 专业: 年级: 姓名: 学号: 22 实验室号 计算机号 22 实验时间: 2013年10月29日 指导教师签字: 成绩: 报告退发 (订正 . 重做) ...

  5. mysql基础小测试三_数据库---MySQL(三)

    一.视图 视图是一个虚拟表,是sql的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会影响到视图[i ...

  6. mysql隔离级别 简书_数据库事务和四种隔离级别

    什么是事务 事务(Transaction):访问并可能更新数据库中各种数据项的一个程序执行单元(unit),它通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起 ...

  7. mysql数据库存储多语言_数据库---数据控制语言(DCL)

    mysql中,权限是系统内定的一些"名词"(单词),大约30个,每个权限表示"可以做什么工作". 则分配权限就是相当于让某个用户可以做哪些工作. 主要权限如下: ...

  8. mysql数据库什么是事件_[数据库]Mysql 事件(定时任务)

    [数据库]Mysql 事件(定时任务) 0 2016-04-25 18:00:28 mysql 创建任务(事件) 1.检查数据库事件是否开启,如果 event_scheduler 等于 NO表示开启 ...

  9. mysql开发是做什么_数据库开发是做什么东西的

    展开全部 数据库开发工程师(Database Developer)是从事数据库管理系统62616964757a686964616fe58685e5aeb931333365663565(DBMS)和数据 ...

  10. mysql视图改造实体表_数据库视图改了对基表

    数据库必知词汇:数据库视图 视图是从一个或几个基本表(或视图)中导出的虚拟的表.在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据.视图与表(有时为与视图区别,也称表为基本表--Base Ta ...

最新文章

  1. c/s开发基础自学纪录为主
  2. 电脑启动后,没有桌面
  3. swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读
  4. php建站静态,php网站如何生成静态
  5. 一文掌握 Redis 常用知识点 | 图文结合
  6. python 整数输出 d f_pythn print格式化输出---------%s 和 % d 都是什么意思?
  7. Magento布局layout.xml文件详解
  8. 录入商品信息的c语言,超市商品信息系统设计报告及程序C语言.doc
  9. 努力只是因为想去做想做的事
  10. 原生和jQuery的ajax用法
  11. oracle mysql认证考试流程_报考oraclemysql认证考试流程有些什么步骤
  12. 复杂网络——活跃度驱动模型(activity-driven model)原理及算法实现
  13. 婚宴座位图html5,婚宴座位图模版欣赏【婚礼纪】
  14. SEM竞价推广创意快速撰写的方法,智能创意制作
  15. springboot项目集成大数据第三方dolphinscheduler调度器
  16. Docker概述与基本使用
  17. html背景图片不重叠铺满,css背景图片怎么铺满
  18. 关于Windows vivado综合卡死的问题
  19. 【12月】RT-Thread VL53L0X TOF传感器驱动实现
  20. 【Golang开发面经】蔚来(两轮技术面)

热门文章

  1. speedoffice(Excel)图片上怎么添加文字
  2. TMS570-6-HET PWM
  3. 为小巨人记一笔,等待明日新星的升起
  4. 年度总结 | 目标检测2019,你还有不知道的吗?
  5. sox处理mp3_sox :音频文件转换命令
  6. 7.0高等数学五-高斯公式
  7. 车载注册蓝牙服务器,车载蓝牙怎么用
  8. Unit 3-Lecture 5: The Pigeonhole Principle and Inclusion-Exclusion
  9. 【Java从零到架构师第③季】【41】SpringBoot-配置文件_YAML_lombok_设置Banner
  10. 性能效率(Performance efficient)弱点度量