WHERE Clause
Filter rows based on 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.