Skip to main content
Documents
Clauses StatementsKeywordsExpressionsFunctionsIndexesPerformance Optimization

MySQL NOT Keyword

The NOT keyword in MySQL is used to negate a condition or expression. It is commonly employed in logical operations to reverse the result of a condition, making it useful for filtering data in SQL queries.

Usage

The NOT keyword is used when you want to exclude specific data or alter the logic of a condition. It is often used in conjunction with other operators like IN, BETWEEN, and EXISTS.

sql
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

In this syntax, NOT condition reverses the logic of the specified condition, affecting the rows returned by the query.

Examples

1. Basic NOT Condition

sql
SELECT *
FROM products
WHERE NOT price > 100;

This query retrieves all products with a price of 100 or less, negating the price > 100 condition.

2. Using NOT with IN

sql
SELECT first_name, last_name
FROM employees
WHERE department_id NOT IN (10, 20, 30);

This example selects employees who are not in departments 10, 20, or 30, effectively filtering them out from the result set.

3. Using NOT with EXISTS

sql
SELECT customer_id, customer_name
FROM customers c
WHERE NOT EXISTS (
  SELECT 1
  FROM orders o
  WHERE o.customer_id = c.customer_id
);

Here, the query fetches customers who have not placed any orders, using NOT EXISTS to exclude those with matching entries in the orders table.

4. Using NOT with BETWEEN

sql
SELECT *
FROM orders
WHERE order_date NOT BETWEEN '2023-01-01' AND '2023-12-31';

This query fetches orders placed outside of the specified date range, effectively excluding orders within the year 2023.

Tips and Best Practices

  • Use NOT sparingly. Overusing NOT can make queries less intuitive and harder to read; consider whether the logic can be simplified.
  • Combine with parentheses. When using NOT with complex conditions, parentheses can clarify the intended logic, especially when combined with AND and OR operators.
  • Check performance. Negations can sometimes lead to less efficient queries, particularly when applied to indexed columns; test performance and optimize as needed.
  • Be clear with conditions. Ensure that the conditions being negated are precise to avoid unintended data exclusion.

SQL Upskilling for Beginners

Gain the SQL skills to interact with and query your data.
Start Learning for Free