Skip to main content
Documents
Clauses StatementsKeywordsExpressionsFunctionsIndexesPerformance Optimization

MySQL WHERE Clause

The `WHERE` clause in MySQL is used to filter records in a SQL statement, allowing you to specify conditions that must be met. It is commonly used to narrow down query results, making data retrieval more efficient and specific.

Usage

The `WHERE` clause is applied to filter records based on specified conditions within SQL commands such as `SELECT`, `UPDATE`, and `DELETE`. It follows the `FROM` clause and precedes other clauses like `GROUP BY` or `ORDER BY`.

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

In this syntax, `WHERE condition` specifies the criteria that each row must meet to be included in the result set.

Examples

1. Basic Filter

sql
SELECT *
FROM customers
WHERE city = 'New York';

This query retrieves all columns from the `customers` table where the `city` is 'New York'.

2. Conditional Selection with Operators

sql
SELECT first_name, last_name
FROM employees
WHERE salary > 50000;

This example selects the `first_name` and `last_name` of employees whose salary is greater than 50,000, demonstrating the use of comparison operators.

3. Multiple Conditions with AND/OR

sql
SELECT order_id, order_date
FROM orders
WHERE status = 'Shipped' AND order_date >= '2023-01-01';

Here, the query retrieves `order_id` and `order_date` from the `orders` table, filtering for orders that are shipped and placed on or after January 1, 2023.

4. Pattern Matching with LIKE

sql
SELECT product_name
FROM products
WHERE product_name LIKE 'A%';

This query selects `product_name` from the `products` table where the name starts with 'A', using the `LIKE` operator for pattern matching.

5. Handling NULL Values

sql
SELECT first_name, last_name
FROM employees
WHERE department IS NULL;

This example retrieves `first_name` and `last_name` of employees who do not belong to any department, demonstrating the use of `IS NULL` to handle NULL values.

Tips and Best Practices

  • Index relevant columns. Ensure columns used in `WHERE` conditions are indexed for improved query performance.
  • Be mindful of NULL values. Use `IS NULL` or `IS NOT NULL` to handle NULL values effectively in your conditions.
  • Use parentheses for clarity. When combining multiple conditions with `AND`/`OR`, use parentheses to ensure the correct evaluation order.
  • Limit wildcard usage. Avoid using wildcards like `%` at the beginning of a `LIKE` clause unless necessary, as it can slow down query performance.
  • Optimize condition order. Place the most restrictive conditions first to reduce the number of records evaluated. This can improve query performance by quickly eliminating non-matching rows.
  • Consider collation settings. Be aware of how collation settings can affect text comparisons, which may lead to unexpected results in some cases.

SQL Upskilling for Beginners

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