UPDATE

New, New, JOIN New and New

Syntax

UPDATE table SET column1=value1 [, column2=value2 ...]
[WHERE conditions]
[ORDER BY ...]
[LIMIT count];

Parameters

ParametersDescriptionExamplesLevel
SET New and UPDATE users SET status = 0 WHERE id = 100; Common
WHERE New(!) UPDATE orders SET status = 2 WHERE order_no = 'ORD20260001'; Common
LIMIT New UPDATE orders SET status = -1 WHERE status = 0 LIMIT 100; Advanced
JOIN New UPDATE orders o JOIN users u ON o.user_id = u.id SET o.status = -1 WHERE u.status = 0; Advanced
CASE WHEN UPDATE products SET price = CASE WHEN stock > 100 THEN price * 0.9 ELSE price END; Advanced

Examples

New

UPDATE users
SET email = 'newemail@example.com',
    updated_at = NOW()
WHERE id = 1001;
WHERE, New

New

UPDATE orders
SET status = -1,
    updated_at = NOW()
WHERE status = 0
  AND created_at < DATE_SUB(NOW(), INTERVAL 30 MINUTE);
30

JOIN New

UPDATE products p
JOIN categories c ON p.category_id = c.id
SET p.status = 0
WHERE c.name = '';
New

New()

-- SELECT COUNT(*) FROM orders WHERE status = 0 AND created_at < '2026-01-01'; -- New
UPDATE orders SET status = -1 WHERE status = 0 AND created_at < '2026-01-01';
SELECT

Common Errors

ERROR 1175: You are using safe update mode (SET sql_safe_updates=1)UPDATE WHERE. : SET sql_safe_updates = 0;
ERROR 1062 (23000): Duplicate entry for keyNew,

Tips

Related Commands