В этом учебном пособии рассматриваются все операторы сравнения, используемые для проверки на равенство и неравенство, а также более сложные операторы.
Описание
Операторы сравнения используются в операторе WHERE, чтобы определить, какие записи выбрать. Вот список операторов сравнения, которые вы можете использовать в MariaDB:
Операторы сравнения | Описание |
---|---|
= | Равно |
<=> | Равно (Безопасное сравнение значения NULL) |
<> | Не равно |
!= | Не равно |
> | Больше чем |
>= | Больше или равно |
< | Меньше, чем |
<= | Меньше или равно |
IN () | Соответствует значению в списке |
NOT | Отрицает условие |
BETWEEN | В пределах диапазона (включительно) |
IS NULL | Значение NULL |
IS NOT NULL | Значение NOT NULL |
LIKE | Соответствие шаблону с % и _ |
EXISTS | Условие выполнено, если подзапрос возвращает хотя бы одну строку |
Рассмотрим операторы сравнения, которые вы можете использовать в MariaDB.
Пример оператор равенства
В MariaDB вы можете использовать оператор =
для проверки на равенство в запросе. Оператор =
может проверять равенство только со значениями, которые не равны NULL.
Например:
1 2 3 |
SELECT * FROM sites WHERE site_name = 'Google.com'; |
В этом примере приведенная выше оператор SELECT возвращает все строки из таблицы sites, где site_name равно "Google.com"
Пример оператор равенства (безопасный со значениями NULL)
Поскольку оператор =
сравнивает только ненулевые значения, использование со значениями NULL небезопасно. Чтобы преодолеть это ограничение, MariaDB добавила оператор <=>
, чтобы вы могли проверить на равенство как с NULL, так и с ненулевыми значениями.
Чтобы лучше объяснить разницу между оператором =
и оператором < = >
, мы приведем несколько примеров с запросами и данными.
Предполагая, что у нас есть таблица с именем sites в MariaDB, которая заполнена следующими данными:
site_id | site_name | server1 | server2 |
---|---|---|---|
1 | Google.com | MyServer | |
2 | Bing.com | ||
3 | Yandex.com | TBD | TDB |
4 | Yahoo.com | MyServer | Other |
Мы могли бы использовать оператор =
в следующем запросе:
1 2 3 |
SELECT * FROM sites WHERE server1 = server2; |
Поскольку мы использовали оператор =
, мы получили бы следующие результаты:
contact_id | last_name | website1 | website2 |
---|---|---|---|
3 | Yandex.com | TBD | TDB |
В приведенном выше примере оператор SELECT возвращает все строки из таблицы sites, где server1 равен server2. Он не возвращает вторую запись, где server1 и server2 оба имеют значения NULL.
Теперь давайте посмотрим, что происходит, когда мы перепишем наш запрос с помощью оператора <=>
, который безопасно использовать со значениями NULL:
1 2 3 |
SELECT * FROM sites WHERE server1 <=> server2; |
Поскольку мы использовали оператор <=>
, мы получили следующие результаты:
contact_id | last_name | website1 | website2 |
---|---|---|---|
2 | Bing.com | ||
3 | Yandex.com | TBD | TDB |
Теперь наш запрос возвращает все строки из таблицы sites, где server1 равен server2, включая те записи, где server1 и server2 являются значениями NULL.
Пример оператор неравенства
В MariaDB вы можете использовать операторы <>
или !=
для проверки неравенства в запросе.
Например, мы можем проверить неравенство, используя оператор <>
, следующим образом:
1 2 3 |
SELECT * FROM sites WHERE site_name <> 'Yandex.com'; |
В этом примере оператор SELECT возвращает все строки из таблицы sites, где site_name не равно "Yandex.com".
Или вы можете также написать этот запрос, используя оператор !=
, как показано ниже:
1 2 3 |
SELECT * FROM sites WHERE site_name != 'Yandex.com'; |
Оба этих запроса будут возвращать одинаковые результаты.
Пример оператора больше чем
Вы можете использовать оператор >
в MariaDB, чтобы проверить выражение больше чем.
1 2 3 |
SELECT * FROM sites WHERE site_id > 3; |
В этом примере оператор SELECT возвращает все строки из таблицы sites, где site_id больше 3. А site_id, равный 3, не включаться в набор результатов.
Пример оператора больше или равно
В MariaDB вы можете использовать оператор >=
для проверки выражения, больше или равно.
1 2 3 |
SELECT * FROM sites WHERE site_id >= 3; |
В этом примере оператор SELECT возвращает все строки из таблицы sites, где site_id больше или равен 3. В этом случае site_id равный 3 будет включено в набор результатов.
Пример оператора меньше чем
Вы можете использовать оператор <
в MariaDB, чтобы проверить выражение меньше чем.
1 2 3 |
SELECT * FROM sites WHERE site_id < 50; |
В этом примере оператор SELECT возвращает все строки из таблицы sites, где site_id меньше 50. site_id, равный 50, не включаться в набор результатов.
Пример оператора меньше или равно
В MariaDB вы можете использовать оператор <=
для проверки выражения, которое меньше или равно.
1 2 3 |
SELECT * FROM sites WHERE site_id <= 50; |
В этом примере оператор SELECT возвращает все строки из таблицы sites, где site_id меньше или равен 50. В этом случае site_id равный 50 будет включен в набор результатов.