MySQL HERHANGİ BİR ve TÜM Operatörler
MySQL HERHANGİ BİR ve TÜM Operatörler
ANY
ve operatörleri , ALL
tek bir sütun değeri ile bir dizi başka değer arasında karşılaştırma yapmanızı sağlar.
HERHANGİ BİR Operatör
ANY
operatör :
- sonuç olarak bir boole değeri döndürür
- Alt sorgu değerlerinden HERHANGİ BİRİ koşulu karşılıyorsa TRUE değerini döndürür
ANY
aralıktaki değerlerden herhangi biri için işlem doğruysa koşulun doğru olacağı anlamına gelir.
HERHANGİ BİR Sözdizimi
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ANY
(SELECT column_name
FROM table_name
WHERE
condition);
Not: Operatör standart bir karşılaştırma operatörü olmalıdır (=, <>, !=, >, >=, < veya <=).
ALL Operatörü
ALL
operatör :
- sonuç olarak bir boole değeri döndürür
- TÜM alt sorgu değerleri koşulu karşılıyorsa TRUE değerini döndürür
SELECT
,WHERE
veHAVING
ifadeleri ile birlikte kullanılır
ALL
koşulun yalnızca, işlem aralıktaki tüm değerler için doğruysa doğru olacağı anlamına gelir.
SELECT ile ALL Sözdizimi
SELECT ALL column_name(s)
FROM table_name
WHERE
condition;
WHERE veya HAVING ile ALL Sözdizimi
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ALL
(SELECT column_name
FROM table_name
WHERE condition);
Not: Operatör standart bir karşılaştırma operatörü olmalıdır (=, <>, !=, >, >=, < veya <=).
Demo Veritabanı
Aşağıda, Northwind örnek veritabanındaki "Ürünler" tablosundan bir seçim bulunmaktadır :
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 |
Ve "Sipariş Detayları" tablosundan bir seçim:
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 HERHANGİ BİR Örnek
Aşağıdaki SQL deyimi, OrderDetails tablosunda Quantity'nin 10'a eşit HERHANGİ bir kaydı bulursa ProductName'i listeler (Quantity sütununda 10'luk bazı değerler olduğundan bu, TRUE değerini döndürür):
Örnek
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);
Aşağıdaki SQL deyimi, OrderDetails tablosunda Quantity'nin 99'dan büyük HERHANGİ bir kaydı bulursa ProductName'i listeler (Miktar sütununda 99'dan büyük bazı değerler olduğundan bu, TRUE değerini döndürür):
Örnek
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 99);
Aşağıdaki SQL deyimi, OrderDetails tablosunda Miktar 1000'den büyük HERHANGİ bir kayıt bulursa ÜrünAdı'nı listeler (Miktar sütununun 1000'den büyük değeri olmadığı için bu YANLIŞ döndürür):
Örnek
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000);
SQL TÜM Örnekler
Aşağıdaki SQL deyimi TÜM ürün adlarını listeler:
Örnek
SELECT ALL ProductName
FROM Products
WHERE TRUE;
Aşağıdaki SQL deyimi, OrderDetails tablosundaki TÜM kayıtların Quantity değeri 10'a eşitse, ProductName'i listeler. Quantity sütununda birçok farklı değer olduğundan (yalnızca 10 değeri değil) bu elbette FALSE değerini döndürür:
Örnek
SELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);