2009-06-12 4 views
2

Je sais que je peux facilement le faire avec quelques lignes de PHP mais j'espérais qu'il y avait une méthode dans MYSQL pour faire cela; Je pense qu'il y en a mais je n'ai pas de chance de le trouver.Sur le champ UPDATE si la valeur est déjà SET, le régler à autre chose?

Fondamentalement, je veux le faire:

UPDATE fieldName SET status='1' 
if status='1', SET status='2' 

Alors que la deuxième ligne est évidemment pas vrai code, mais c'est-ce que je veux faire. METTRE à JOUR un champ à une valeur, et si ce champ est déjà égal à cette valeur, le mettre à jour avec une valeur différente.

Répondre

5

Est-ce que cela fonctionnerait?

UPDATE table SET status = IF(status = 1, 2, 1) WHERE ...; 

Fondamentalement, c'est si le statut est égal à 1, rétablissez alors 2 sinon, laissez était 1. Mais vous pourriez aussi bien faire, si c'est tout ce que vous voulez faire:

UPDATE table SET status = 2 WHERE status = 1; 
+0

À la vôtre. Savait que c'était quelque chose d'évident! –

1

Si vous voulez avoir un champ qui agit comme un bouton à bascule, essayez ceci:

UPDATE table SET status = ABS(status - 1) WHERE... 

de cette façon, chaque fois que vous mettez à jour les statut permet de basculer entre 0 et 1

+0

Cela fonctionnerait aussi! Je m'en souviendrai dans le futur. –

Questions connexes