1、类型不同
这两个都是用于子查询的,any 是任意一个,all 是所有。
2、用法不同
select * from student where 班级='01' and age > all (select age from student where 班级='02')
就是说,查询出01班中,年龄大于 02班所有人 的 同学
相当于
select * from student where 班级='01' and age > (select max(age) from student where 班级='02')
而
select * from student where 班级='01' and age > any (select age from student where 班级='02')
就是说,查询出01班中,年龄大于02班任意一个的同学
相当于
select * from student where 班级='01' and age > (select min(age) from student where 班级='02')
扩展资料:
ANY函数简介
函数功能:判断数组中元素是否为0
语法格式:
B = any(A)
判断数组中元素是否是一个非零元素或逻辑1(true)。any函数会忽略掉数组中的NaN项(not a number)。
如果A是空的,any(A)返回逻辑0(false)。
如果A是一个向量(1行n列或n行1列的矩阵),只要A中有一个非零元素或A中有一个元素是逻辑1,any(A)返回逻辑1(true),否则(A中所有元素均为0)返回逻辑0(false)。
如果A是一个矩阵,any函数把A的每一列当做一个向量,any(A)返回一个行向量。
如果A是一个多维数组,any(A)对A中第一个非奇异维进行判断。
B = any(A,dim)
dim指定了要进行判定的维数。例如,对于二维数组, any(A, 1)把A中每一列看做一个向量,然后进行判断;any(A, 2)把A中每一行看做一个向量,然后进行判断。
相关函数:all
参考资料来源:百度百科-all (英语单词)
参考资料来源:百度百科-any (英文单词)
ALL为一个结果集,=ALL,即等于结果集中所有值。例表 :
table_a
a
1
2
3
4
-----------------------------------------------
table_b
a
1
select * from table_a where a = all(select a from table_b)
语句等效于
select * from table_a where a = 1
检索结果为:1
--------------------------------------------
table_c
a
1
1
select * from table_a where a = all(select a from table_c)
语句等效于
select * from table_a where a = 1
检索结果为:1
---------------------------------------
table_d
a
1
2
select * from table_a where a = all(select a from table_d)
则返回结果集为空
---------------------------------------------------
以上的例子,即a列的值与 all结果集所以的值对比。
而实际应用中,ALL更常与 ‘>’ ,‘<’运算符组合,来选择一个范围内的数据。
mysql union和union all的区别如下:
比如说现在有一个集合A{1,2,3,4,5}和集合B{5,6.7,8,9}
union是求两个(或者多个)集合的并集(不允许重复元素),得到的集合是{1,2,3,4,5,6,7,8,9};
union all也是求两个(或者多个)集合的并集(允许重复元素),得到的集合是{1,2,3,4,5,5,6,7,8,9};
现在来执行以下两条sql:
select * from ( select id from B unionselect id from C)
select * from ( select id from B union all select id from C)
得到的结果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)