SQL traps · SQL
SQL: NULL = NULL is NOT true?!PRO
NULL means unknown, so = NULL never matches a row. IS NULL and COALESCE fix it.
-- SQL: NULL = NULL is NOT true ?! — NULL means "unknown", so = NULL never matches.
CREATE TABLE users (name TEXT, email TEXT);
INSERT INTO users VALUES ('Asha', 'asha@mail.com'), ('Ravi', NULL), ('Meera', NULL);
SELECT 'WHERE email = NULL' AS query, COUNT(*) AS rows FROM users WHERE email = NULL; -- 0 ?!
SELECT 'WHERE email IS NULL' AS query, COUNT(*) AS rows FROM users WHERE email IS NULL; -- 2 ✓
SELECT NULL = NULL AS equal_check; -- NULL (unknown), not 1
SELECT name, COALESCE(email, '(none)') AS email FROM users; -- show a default ✓
Open code S1 in Pocket Compiler
Download the Pocket Compiler app — free
No app yet? Install it, then open the app and type the code S1 in Code Library.