Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Расширенная фильтрация

Использование ключевого слова NOT

      Логический оператор NOT предложения WHERE служит для выполнения только одной функции — отрицать все предложения, следующие за ним. Поскольку NOT никогда не используется сам по себе (а только вместе с другими логическими операторами), его синтаксис немного отличается от синтаксиса остальных операторов. В отличие от них, NOT вставляется перед названием столбца, значения которого нужно отфильтровать, а не после.

NOT

Ключевое слово, применяемое в предложении WHERE для отрицания какого-то условия.

     В следующем примере демонстрируется использование логического оператора NOT. Чтобы извлечь список продуктов, изготовленных всеми производителями, кроме DLL01, можно потребовать выполнить следующее:

SELECT prod_name FROM Products WHERE NOT vend_id = 'DLL01' ORDER BY prod_name;



prod_name
------------------------
12 inch teddy bear 
18 inch teddy bear 
8 inch teddy bear 
King doll 
Queen doll

      Здесь логический оператор NOT отрицает предложение, следующее за ним. Поэтому СУБД извлекает не те значения vend_id, которые совпадают с DLL01, а все остальные.
      Предыдущий запрос можно было также выполнить при помощи операции <>:

SELECT prod_name FROM Products WHERE vend_id <> 'DLLOl' ORDER BY prod_name; 



prod_name 
--------------------
12 inch teddy bear 
18 inch teddy bear 
8 inch teddy bear 
King doll 
Queen doll

      Зачем же использовать логический оператор NOT? Конечно, для таких простых предложений WHERE, какие мы здесь рассматриваем, этот оператор не обязателен. Он полезен в более сложных предложениях. Например, для нахождения всех строк, которые не совпадают со списком критериев, можно использовать логический оператор NOT в паре с ключевым словом IN.

NOT в MySQL

Форма логического оператора NOT, который здесь описывается, не поддерживается в СУБД MySQL. В MySQL NOT используется только для отрицания вхождений EXISTS (т.е. как NOT EXISTS).