SQL WHERE clause to filter rows
Use the WHERE clause to return only the rows that match your conditions.
The WHERE clause filters which rows are returned. It's essential for retrieving specific data.
Basic Syntax
SELECT columns FROM table WHERE condition;
Simple Conditions
-- Exact match SELECT * FROM users WHERE status = 'active'; -- Numeric comparison SELECT * FROM products WHERE price > 100; -- Date comparison SELECT * FROM orders WHERE created_at > '2024-01-01';
Multiple Conditions
-- AND: All conditions must be true SELECT * FROM users WHERE status = 'active' AND country = 'USA' AND age >= 18; -- OR: Any condition can be true SELECT * FROM products WHERE category = 'Electronics' OR category = 'Computers'; -- Combining AND and OR SELECT * FROM orders WHERE status = 'pending' AND (total > 100 OR priority = 'high');
WHERE with Expressions
-- Filter on calculated values SELECT * FROM order_items WHERE price * quantity > 500; -- Filter using functions SELECT * FROM users WHERE LENGTH(name) > 10; -- Filter using LOWER/UPPER for case-insensitive search SELECT * FROM products WHERE LOWER(name) = 'iphone';
Performance Tip: Avoid using functions on columns in WHERE clauses when possible.WHERE LOWER(name) = 'john' can't use indexes, but WHERE name = 'John' can.