Операторы сравнения MySQL

В этом учебном пособии описаны все операторы сравнения, используемые для проверки равенства и неравенства, а также более продвинутые операторы.

Описание

Операторы сравнения используются в предложении WHERE, чтобы определить, какие записи выбрать. Вот список операторов сравнения, которые вы можете использовать в MySQL:

Операторы сравнения Описание
=Равно
<=>Равно (безопасное сравнение значения NULL)
<>, !=Не равно
>Больше, чем
>=Больше или равно
<Меньше, чем
<=Меньше или равно
IN ( )Соответствует значению в списке
NOTОтрицает условие
BETWEENВ пределах диапазона (включительно)
IS NULLЗначение NULL
IS NOT NULLЗначение, не NULL
LIKEСоответствие шаблону % и _
EXISTSУсловие выполняется, если подзапрос возвращает хотя бы одну строку

Рассмотрим примеры операторов сравнения, которые вы можете использовать в MySQL.

Пример оператора равенства

В MySQL вы можете использовать оператор = для проверки равенства в запросе. Оператор <=> может проверять только равенство со значениями, которые не являются NULL.
Например:

В этом примере оператора SELECT, возвращает все строки из таблицы contacts, где last_name равно Bernard.

Пример оператора равенства (безопасный с нулевыми значениями)

Поскольку оператор = только сравнивает значения, отличные от NULL, использовать значения NULL небезопасно. Чтобы преодолеть это ограничение, MySQL добавил оператор<=>, чтобы вы могли проверить равенство как со значениями NULL, так и с не NULL значениями.

Чтобы лучше объяснить разницу между оператором = и оператором <=>, мы будем включать некоторые примеры как с запросами, так и с данными.

Предполагая, что у нас в MySQL есть таблица, называемая contacts, которая заполнена следующими данными:

contact_idlast_namesite1site2
1Arnoldalexa.com
2Gypsie
3Boysonbing.combing.com
4Juangoogle.rugoogle.com

Мы могли бы использовать оператор = в следующем запросе:

Получим следующий результат:

contact_idlast_namesite1site2
3Boysonbing.combing.com

В вышеприведенном примере оператор SELECT возвращает все строки из таблицы contacts, где site1 равен site2. Он не возвращает вторую запись, в которой значения site1 и site2 имеют значения NULL.

Теперь давайте посмотрим, что произойдет, когда мы перепишем наш запрос с помощью оператора <=>, который безопасен для использования со значениями NULL:

Поскольку мы используем оператор <=>, мы получим следующий результат:

contact_idlast_namesite1site2
2Gypsie
3Boysonbing.combing.com

Теперь наш запрос возвращает все строки из таблицы contacts, где site1 равен site2, включая те записи, где site1 и site2 имеют значения NULL.

Пример оператора неравенства

В MySQL вы можете использовать операторы <> или !=. Для проверки неравенства в запросе.

Например, мы могли бы проверить неравенство с помощью оператора <> следующим образом:

В этом примере оператор SELECT вернет все строки из таблицы contacts, где last_name не равно Bernard.

Или вы также можете написать этот запрос с помощью оператора != следующим образом:

Оба этих запроса возвратят одинаковые результаты.

Пример оператора >

Вы можете использовать оператор > в MySQL для проверки выражения «более чем».

В этом примере оператор SELECT будет возвращать все строки из таблицы contacts, где contact_id больше 20. В набор результатов не будет включен contact_id, равный 20.

Пример оператора >=

В MySQL вы можете использовать оператор >= для проверки выражения, «больше или равно».

В этом примере оператор SELECT вернет все строки из таблицы contacts, где contact_id больше или равен 20. В этом случае contact_id равный 20, будет включен в результирующий набор.

Пример оператора <

Вы можете использовать оператор < в MySQL для проверки выражения «меньше чем».

В этом примере оператор SELECT вернет все строки из таблицы contacts, где contact_id меньше 150. contact_id равный 150, не будет включен в результирующий набор.

Пример оператора <=

В MySQL вы можете использовать оператор <= для проверки выражения, которое «меньше или равно».

В этом примере оператор SELECT вернет все строки из таблицы contacts, где contact_id меньше или равно 150. В этом случае product_id, равный 150, будет включен в результирующий набор.