Comparison Operators
Compare values in WHERE conditions
Comparison operators determine how values are compared in WHERE clauses.
Equality & Inequality
-- Equal to SELECT * FROM users WHERE role = 'admin'; -- Not equal to (two ways) SELECT * FROM users WHERE role != 'admin'; SELECT * FROM users WHERE role <> 'admin';
Range Comparisons
-- Greater than / Less than SELECT * FROM products WHERE price > 50; SELECT * FROM products WHERE price < 100; -- Greater/less than or equal SELECT * FROM products WHERE price >= 50; SELECT * FROM products WHERE stock <= 10; -- Combining for ranges SELECT * FROM products WHERE price >= 50 AND price <= 100;
String Comparison
-- Strings are compared alphabetically SELECT * FROM products WHERE name < 'M'; -- A-L SELECT * FROM products WHERE name >= 'M'; -- M-Z -- Case sensitivity varies by database -- PostgreSQL: case-sensitive by default -- MySQL: case-insensitive by default (depends on collation) -- SQLite: case-sensitive for ASCII
Date Comparison
-- Compare dates
SELECT * FROM orders
WHERE created_at >= '2024-01-01'
AND created_at < '2024-02-01';
-- Orders from last 7 days (SQLite)
SELECT * FROM orders
WHERE created_at >= date('now', '-7 days');
-- Orders from last 7 days (PostgreSQL)
SELECT * FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days';