Skip to main content
Documents
Share
LinkedIn
Facebook
Twitter
Copy
ClausesStatementsKeywordsExpressionsFunctions

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.