В этом учебном пособии рассматриваются все операторы сравнения, используемые для проверки на равенство и неравенство, а также более сложные операторы.
Описание
Операторы сравнения используются в операторе 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 будет включен в набор результатов.