W SQL operator mniejszy lub równy (<=
) porównuje dwa wyrażenia i zwraca TRUE
jeśli lewy operand ma wartość mniejszą lub równą prawemu operandowi; w przeciwnym razie wynik to FALSE
.
Możesz go użyć do określenia, czy wartość jest mniejsza lub równa innej wartości.
Przykład
Oto przykład do zademonstrowania.
SELECT * FROM city
WHERE Population <= 455;
Wynik:
+------+--------------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | | 3538 | Città del Vaticano | VAT | – | 455 | +------+--------------------+---------------+-------------+--------------+
To zapytanie zwraca wszystkie miasta o populacji 455 lub mniejszej.
Włącznie
Operator mniejszy lub równy zawiera określoną wartość w swojej ocenie. Widzieliśmy to w poprzednim przykładzie, gdy obejmował on miasto o populacji 455, co było dokładnie taką wartością, jaką podaliśmy.
Gdybyśmy nie chcieli, aby to miasto zostało uwzględnione, musielibyśmy albo obniżyć wartość:
SELECT * FROM city
WHERE Population <= 454;
Wynik:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Lub możemy po prostu użyć operatora mniej niż (<
) zamiast:
SELECT * FROM city
WHERE Population < 455;
Wynik:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Operator mniej niż nie zawiera określonej wartości.
Daty
Oto przykład demonstrujący użycie operatora mniejszego lub równego do porównywania wartości dat.
SELECT PetName, DOB
FROM Pets
WHERE DOB <= '2020-03-15';
Wynik:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | +-----------+------------+
Struny
Możesz także użyć <=
operator do porównywania wartości ciągów. Porównując z wartością ciągu, użyj cudzysłowów wokół literału ciągu.
SELECT * FROM city
WHERE Name <= 'Ab';
Wynik:
+------+------------------------------+---------------+---------------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+---------------------+--------------| | 20 | ´s-Hertogenbosch | NLD | Noord-Brabant | 129170 | | 548 | Šumen | BGR | Varna | 94686 | | 670 | A Coruña (La Coruña) | ESP | Galicia | 243402 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 2450 | Šiauliai | LTU | Šiauliai | 146563 | | 3097 | Aachen | DEU | Nordrhein-Westfalen | 243825 | | 3318 | Aalborg | DNK | Nordjylland | 161161 | | 3479 | Šostka | UKR | Sumy | 90000 | | 3665 | Šahty | RUS | Rostov-na-Donu | 221800 | | 3736 | Štšolkovo | RUS | Moskova | 104900 | +------+------------------------------+---------------+---------------------+--------------+
To zapytanie zwraca wszystkie miasta, które są mniejsze lub równe Ab
. Zasadniczo zwraca wszystkie miasta, które zaczynają się od liter mniejszych niż Ab
lub dokładnie Ab
.
Wiele warunków
Jeśli masz wiele warunków, możesz użyć wielu <=
operatorów.
Tak:
SELECT * FROM city
WHERE Name <= 'Ab' AND Population <= 100000;
Wynik:
+------+--------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------+---------------+------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+--------+---------------+------------+--------------+
Pierwszeństwo
Możesz także użyć kombinacji operatorów podczas filtrowania wyników.
Zauważ, że SQL ma kolejność, którą przypisuje różnym typom operatorów. Na przykład ocenia wszystkie operatory warunkowe przed wszelkimi operatorami logicznymi, takimi jak AND
i OR
. Ponadto ocenia każdy AND
operatory przed OR
operatorów.
Nawiasy mają wyższy priorytet niż wszystkie operatory, więc możesz użyć nawiasów do określenia kolejności, w jakiej każdy warunek powinien być oceniany.
Rozważ następujący przykład:
SELECT * FROM city
WHERE Name <= 'Ab'
AND Population <= 100000
OR District = 'Canary Islands';
Wynik:
+------+------------------------------+---------------+----------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+----------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 660 | Las Palmas de Gran Canaria | ESP | Canary Islands | 354757 | | 672 | Santa Cruz de Tenerife | ESP | Canary Islands | 213050 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+------------------------------+---------------+----------------+--------------+
W tym zapytaniu nie podałem żadnych nawiasów, więc AND
operator został oceniony przed OR
operatora.
Dlatego otrzymaliśmy wiersze, które spełniają albo Name <= 'Ab' AND Population <= 100000
lub District = 'Canary Islands'
. Wystarczy spojrzeć na to, aby stwierdzić, że wszystkie miasta z Wysp Kanaryjskich zostaną zwrócone, plus wszystkie miasta spełniające pierwsze kryteria.
To tak, jakby wykonać następujące czynności:
SELECT * FROM city
WHERE (Name <= 'Ab'
AND Population <= 100000)
OR District = 'Canary Islands';
To dałoby nam ten sam wynik, co poprzednie zapytanie bez nawiasów.
Ale spójrz, co się stanie, gdy przeniesiemy nawiasy do OR
stan.
SELECT * FROM city
WHERE Name <= 'Ab'
AND (Population <= 100000
OR District = 'Canary Islands');
Wynik:
+------+------------------------------+---------------+----------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+----------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+------------------------------+---------------+----------------+--------------+
Tym razem otrzymaliśmy tylko te miasta, które spełniły wymagania zarówno Population <= 100000 OR District = 'Canary Islands'
i Name <= 'Ab'
.
Negowanie warunku
Możesz użyć NOT
operator do zanegowania warunku dostarczonego przez <=
operator. Oto przykład:
SELECT PetName, DOB
FROM Pets
WHERE NOT DOB <= '2019-12-31';
Wynik:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+