2010-02-22 3 views

Répondre

8

Si count est la seule colonne que vous mettez à jour (ou, vous n'avez pas d'autres critères spécifiés dans votre clause where), alors vous pouvez simplement le faire dans la clause where

UPDATE [Table] SET counts = counts - 1 WHERE counts > 0; 

Cependant, si vous mettez à jour les autres colonnes dans la même requête, cela ne fonctionnera pas. Mais vous avez des options

UPDATE [Table] SET counts = MAX(counts - 1, 0); 

ou

UPDATE [Table] SET counts = CASE WHEN counts > 0 THEN counts - 1 ELSE 0 END; 
0

grâce à @Peter Bailey

c'est l'exemple avec le sélecteur WHERE.

UPDATE [tbl_multimedia] SET [m_publish] = CASE WHEN [m_publish] = 0 THEN '1' ELSE '0' END WHERE id='1' 

Bonne chance.