Mysql子查询关键字的使用方式(exists)

目录

1. all

1.1 格式

1.2 特点 

1.3 操作

2. any(some)

1.1 格式

1.2 特点

1.3 操作

3. in

1.1 格式

1.2 特点

1.3 操作

4. exist

1.1 格式

1.2 特点

1.3 操作

1.4 解释

1. all 1.1 格式

1.2 特点 

all:与子查询返回的所有值比较为true则返回true

all可以与=,>=,>,<,<=,<>结合使用,分别表示等于,大于等于,大于,小于,小于等于,不等于其中的所有数据

大于all表示指定列中的值必须要大于子查询集中的每一个值,即必须要大于子查询集的最大值;如果是小于即小于子查询中的最小值。

1.3 操作

2. any(some) 1.1 格式

1.2 特点

any:与子查询返回的所有值比较为true则返回true

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

大于any表示指定列中的值必须要大于子查询集中的任何一个值,即必须要大于子查询集的最小值;其他同理

some可以理解为any的别名

1.3 操作

3. in 1.1 格式

1.2 特点

in用于判断某个记录的值,是否在指定的集合中

在in关键字前边加上not可以将条件反过来

1.3 操作

4. exist 1.1 格式

1.2 特点

该子查询如果“有数据结果”(至少返回一行数据),则该EXISTS()结果为:true,外层查询执行

该子查询如果“没有数据结果”(没有任何数据返回),则该EXISTS()结果为:false,外层查询不执行

EXISTS后面的子查询不返回任何实际数据,只返回真或假,当返回真时where条件成立

注意:EXISTS关键字,比IN关键字的运算效率高,因此,在实际开发中,特别是大数据量时,推荐使用EXISTS关键字

1.3 操作

1.4 解释

外层查询进行查询时,外层查询会一行一行执行,第一行执行时,判断子查询是否为true,为true则此行数据被查出,接着第二行查询。。。以此往复。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读