UPDATE messages
SET s_deleted = IF(sender = :sender, 1, s_deleted),
r_deleted = IF(recipient = :recipient, 1, r_deleted)
WHERE id = :id
Som du kan se, er "tricket" blot at sætte en kolonne til dens eksisterende værdi, når kriterierne ikke er opfyldt, så den kun bliver opdateret, når det er nødvendigt.