UPDATE messages
SET s_deleted = IF(sender = :sender, 1, s_deleted),
r_deleted = IF(recipient = :recipient, 1, r_deleted)
WHERE id = :id
Zoals u kunt zien, is de "truc" om een kolom eenvoudig op de bestaande waarde in te stellen wanneer niet aan de criteria wordt voldaan, zodat deze alleen wordt bijgewerkt als dat nodig is.