MySQL SQL

MySQL ANY, ALL

The MySQL ANY and ALL Operators

You can compare a single column value with a range of additional values using the ANY and ALL operators.

The ANY Operator

The operator ANY:

  • yields a boolean value as the outcome.
  • returns TRUE if ANY value in the subquery satisfies the requirement.

ANY indicates that if the operation is true for any of the values in the range, the condition will also be true.

ANY Syntax

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

Note: The operator must be a standard comparison operator (=, <>, !=, >, >=, <, or <=).

The ALL Operator

The operator for ALL:

  • yields a boolean value as the outcome.
  • returns TRUE if EVERY value in the subquery satisfies the requirement.
  • is applied to WHERE, HAVING, and SELECT statements.

ALL denotes that the operation must be true for all values in the range for the condition to be true.

ALL Syntax With SELECT

				
					SELECT ALL column_name(s)
FROM table_name
WHERE condition;
				
			

ALL Syntax With WHERE or HAVING

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

Note: The operator must be a standard comparison operator (=, <>, !=, >, >=, <, or <=).

Demo Database

Below is a selection from the “Products” table in the Northwind sample database:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 – 12 oz bottles19
3Aniseed Syrup1212 – 550 ml bottles10
4Chef Anton’s Cajun Seasoning2248 – 6 oz jars22
5Chef Anton’s Gumbo Mix2236 boxes21.35
6Grandma’s Boysenberry Spread3212 – 8 oz jars25
7Uncle Bob’s Organic Dried Pears3712 – 1 lb pkgs.30
8Northwoods Cranberry Sauce3212 – 12 oz jars40
9Mishi Kobe Niku4618 – 500 g pkgs.97

And a selection from the “OrderDetails” table:

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140
6102504110
7102505135
8102506515
910251226
10102515715

SQL ANY Examples

Because the Quantity column contains some values of 10, the SQL statement that follows lists the ProductName if it finds ANY records in the OrderDetails table with Quantity equal to 10:

Example

				
					SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);
				
			

If it discovers that ANY records in the OrderDetails table have a quantity greater than 99, the SQL statement that follows lists the ProductName (this will return TRUE because the Quantity column has some values larger than 99):

Example

				
					SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);
				
			

If it discovers that ANY records in the OrderDetails table have a quantity more than 1000, the SQL statement that follows lists the ProductName (this will return FALSE because the Quantity column has no values larger than 1000):

Example

				
					SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);
				
			

SQL ALL Examples

The following SQL statement lists ALL the product names:

Example

				
					SELECT ALL ProductName
FROM Products
WHERE TRUE;
				
			

If Quantity equals 10 for EVERY record in the OrderDetails table, then the ProductName is listed in the SQL statement that follows. Naturally, since the Quantity column has a wide range of values (not just the number 10), this will yield FALSE:

Example

				
					SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);
				
			
Share this Doc

MySQL ANY, ALL

Or copy link

Explore Topic