MySQL APAPUN dan SEMUA Operator
MySQL APAPUN dan SEMUA Operator
Operator ANY
and ALL
memungkinkan Anda melakukan perbandingan antara nilai kolom tunggal dan rentang nilai lainnya.
Operator APAPUN
Operatornya ANY
:
- mengembalikan nilai boolean sebagai hasilnya
- mengembalikan TRUE jika APAPUN dari nilai subquery memenuhi kondisi
ANY
berarti bahwa kondisinya akan benar jika operasi itu benar untuk salah satu nilai dalam rentang.
Sintaks APAPUN
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ANY
(SELECT column_name
FROM table_name
WHERE
condition);
Catatan: Operator harus berupa operator pembanding standar (=, <>, !=, >, >=, <, atau <=) .
Operator SEMUA
Operatornya ALL
:
- mengembalikan nilai boolean sebagai hasilnya
- mengembalikan TRUE jika SEMUA nilai subquery memenuhi kondisi
- digunakan dengan
SELECT
,WHERE
danHAVING
pernyataan
ALL
berarti kondisi akan benar hanya jika operasi benar untuk semua nilai dalam rentang.
SEMUA Sintaks Dengan SELECT
SELECT ALL column_name(s)
FROM table_name
WHERE
condition;
SEMUA Sintaks Dengan WHERE atau HAVING
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ALL
(SELECT column_name
FROM table_name
WHERE condition);
Catatan: Operator harus berupa operator pembanding standar (=, <>, !=, >, >=, <, atau <=) .
Basis Data Demo
Di bawah ini adalah pilihan dari tabel "Produk" di database sampel Northwind:
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 |
Dan pilihan dari tabel "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 |
Contoh SQL APAPUN
Pernyataan SQL berikut mencantumkan ProductName jika menemukan catatan APAPUN dalam tabel OrderDetails memiliki Kuantitas sama dengan 10 (ini akan mengembalikan TRUE karena kolom Kuantitas memiliki beberapa nilai 10):
Contoh
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);
Pernyataan SQL berikut mencantumkan ProductName jika menemukan catatan APAPUN dalam tabel OrderDetails memiliki Kuantitas lebih besar dari 99 (ini akan mengembalikan TRUE karena kolom Kuantitas memiliki beberapa nilai yang lebih besar dari 99):
Contoh
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 99);
Pernyataan SQL berikut mencantumkan ProductName jika menemukan catatan APAPUN dalam tabel OrderDetails memiliki Kuantitas lebih besar dari 1000 (ini akan mengembalikan FALSE karena kolom Kuantitas tidak memiliki nilai yang lebih besar dari 1000):
Contoh
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000);
SQL SEMUA Contoh
Pernyataan SQL berikut mencantumkan SEMUA nama produk:
Contoh
SELECT ALL ProductName
FROM Products
WHERE TRUE;
Pernyataan SQL berikut mencantumkan ProductName jika SEMUA catatan dalam tabel OrderDetails memiliki Kuantitas sama dengan 10. Ini tentu saja akan mengembalikan FALSE karena kolom Kuantitas memiliki banyak nilai yang berbeda (tidak hanya nilai 10):
Contoh
SELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);