MySQL ENIGE en ALLE operateurs
Die MySQL ENIGE en ALLE operateurs
Die ANY
en ALL
operateurs laat jou toe om 'n vergelyking tussen 'n enkele kolomwaarde en 'n reeks ander waardes uit te voer.
Die ENIGE operateur
Die ANY
operateur:
- gee as gevolg daarvan 'n Boolese waarde
- gee TRUE terug as ENIGE van die subnavraagwaardes aan die voorwaarde voldoen
ANY
beteken dat die voorwaarde waar sal wees as die bewerking waar is vir enige van die waardes in die reeks.
ENIGE sintaksis
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ANY
(SELECT column_name
FROM table_name
WHERE
condition);
Let wel: Die operateur moet 'n standaard vergelykingsoperateur wees (=, <>, !=, >, >=, <, of <=).
Die ALLE-operateur
Die ALL
operateur:
- gee as gevolg daarvan 'n Boolese waarde
- gee TRUE terug as AL die subnavraagwaardes aan die voorwaarde voldoen
- word gebruik met
SELECT
,WHERE
enHAVING
stellings
ALL
beteken dat die voorwaarde slegs waar sal wees as die bewerking waar is vir alle waardes in die reeks.
ALLE sintaksis Met SELECT
SELECT ALL column_name(s)
FROM table_name
WHERE
condition;
ALLE Sintaksis Met WAAR of HET
SELECT column_name(s)
FROM table_name
WHERE
column_name operator ALL
(SELECT column_name
FROM table_name
WHERE condition);
Let wel: Die operateur moet 'n standaard vergelykingsoperateur wees (=, <>, !=, >, >=, <, of <=).
Demo-databasis
Hieronder is 'n keuse uit die "Produkte" -tabel in die Noordewind-voorbeelddatabasis:
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 |
En 'n keuse uit die "OrderDetails" tabel:
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 ENIGE Voorbeelde
Die volgende SQL-stelling lys die Produknaam as dit ENIGE rekords in die OrderDetails-tabel vind, het Hoeveelheid gelyk aan 10 (dit sal WAAR terugstuur omdat die Hoeveelheid-kolom sommige waardes van 10 het):
Voorbeeld
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);
Die volgende SQL-stelling lys die Produknaam as dit ENIGE rekords in die OrderDetails-tabel vind, het Hoeveelheid groter as 99 (dit sal WAAR terugstuur omdat die Hoeveelheid-kolom sommige waardes groter as 99 het):
Voorbeeld
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 99);
Die volgende SQL-stelling lys die Produknaam as dit ENIGE rekords in die OrderDetails-tabel vind, het Hoeveelheid groter as 1000 (dit sal ONWAAR terugkeer omdat die Hoeveelheid-kolom geen waardes groter as 1000 het nie):
Voorbeeld
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000);
SQL ALLE Voorbeelde
Die volgende SQL-stelling lys AL die produkname:
Voorbeeld
SELECT ALL ProductName
FROM Products
WHERE TRUE;
Die volgende SQL-stelling lys die Produknaam as AL die rekords in die OrderDetails-tabel Hoeveelheid gelyk aan 10 het. Dit sal natuurlik ONWAAR terugstuur omdat die Hoeveelheid-kolom baie verskillende waardes het (nie net die waarde van 10 nie):
Voorbeeld
SELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);