ANY, ALL

收藏319

阅读2628

更新时间2025-08-20

MySQL ANY 和 ALL 运算符

ANYALL 运算符允许您在单个列值和范围之间执行比较 其他值。


ANY 运算符

ANY 运算符:

  • 返回一个布尔值作为结果
  • 如果任何子查询值满足条件,则返回 TRUE

ANY 表示如果该范围内的任何值的运算为真,则条件为真。

ANY 语法

SELECT column_name(s) FROM table_name WHERE column_name operator ANY  (SELECT column_name  FROM table_name  WHERE condition);

注意: 运算符 必须是标准比较运算符 (=, <>, !=, >, >=, <, or <=)。


ALL 运算符

ALL 运算符:

  • 返回一个布尔值作为结果
  • 如果所有子查询值都满足条件,则返回 TRUE
  • SELECTWHEREHAVING 语句一起使用

ALL 表示仅当操作对范围内的所有值都为真时,条件才会为真。

SELECT 的 ALL 语法

SELECT ALL column_name(s) FROM table_name WHERE condition;

ALL 语法与 WHERE 或 HAVING

SELECT column_name(s) FROM table_name WHERE column_name operator ALL  (SELECT column_name  FROM table_name  WHERE condition);

注意: 运算符必须是标准比较运算符(=、<>、!=、>、>=、< 或 <=)。


演示数据库

以下是 Northwind 示例数据库中 "Products" 表的选择:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
6 Grandma's Boysenberry Spread 3 2 12 - 8 oz jars 25
7 Uncle Bob's Organic Dried Pears 3 7 12 - 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 - 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 - 500 g pkgs. 97

以及从 "OrderDetails" 表中的选择:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15


SQL ANY 示例

如果发现 OrderDetails 表中的任何记录的 Quantity 等于 10,则以下 SQL 语句列出 ProductName(这将返回 TRUE,因为 Quantity 列的某些值是 10):

实例

SELECT ProductNameFROM ProductsWHERE ProductID = ANY  (SELECT ProductID  FROM OrderDetails  WHERE Quantity = 10);
»

如果发现 OrderDetails 表中的任何记录的 Quantity 大于 99,则以下 SQL 语句将列出 ProductName(这将返回 TRUE,因为 Quantity 列的某些值大于 99):

实例

SELECT ProductNameFROM ProductsWHERE ProductID = ANY  (SELECT ProductID  FROM OrderDetails  WHERE Quantity > 99);
»

如果发现 OrderDetails 表中的任何记录的 Quantity 大于 1000,则以下 SQL 语句列出 ProductName(这将返回 FALSE,因为 Quantity 列没有大于 1000 的值):

实例

SELECT ProductNameFROM ProductsWHERE ProductID = ANY  (SELECT ProductID  FROM OrderDetails  WHERE Quantity > 1000);
»

SQL ALL 示例

以下 SQL 语句列出所有产品名称:

实例

SELECT ALL ProductNameFROM ProductsWHERE TRUE;
»

如果 OrderDetails 表中的所有记录的 Quantity 等于 10,则以下 SQL 语句列出 ProductName。这当然会返回 FALSE,因为 Quantity 列有许多不同的值(不仅仅是 10 的值):

实例

SELECT ProductNameFROM ProductsWHERE ProductID = ALL  (SELECT ProductID  FROM OrderDetails  WHERE Quantity = 10);
»

相关

视频

RELATED VIDEOS

更多

免费

MySQLi面向过程极速入门
中级 MySQLi面向过程极速入门

127669次学习

收藏

免费

MySQLi面向对象编程极速入门

免费

MySQL权威开发指南(教程)

免费

MySQL高级进阶视频教程
高级 MySQL高级进阶视频教程

122147次学习

收藏

免费

肖文吉Oracle视频教程
初级 肖文吉Oracle视频教程

72226次学习

收藏

免费

魔乐科技oracle视频教程
初级 魔乐科技oracle视频教程

54966次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.4万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.1万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.8万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号