2010-08-16 4 views
11

MySQL utilise TinyINT pour servir de champ booléen. Compte tenu des options possibles de 0 et 1, j'ai décidé que je feuillette des valeurs comme ceci:MySQL boolean - inverser la valeur?

UPDATE table 
SET boolean_field = ABS(boolean_field - 1) 
WHERE Circle-K = 'Strange things are afoot' 

Vous pouvez soit aller 1 -> 0 -> ABS (0) = 0

ou 0 - > -1 -> ABS (-1) = 1

maintenant je suis curieux de savoir si cela est ou acceptable horrifiant aux vrais programmeurs?

/moi est un débutant

Répondre

44

Pourquoi ne pas utiliser simplement:

 
UPDATE the_table 
    SET boolean_field = NOT boolean_field 
WHERE ... 

rend votre intention beaucoup plus facile à lire

+0

+1 pour plus de lisibilité tout en ne sacrifiant (probablement) pas la vitesse. – paxdiablo

+0

+1: Je ne savais pas que c'était valide - confirmé le 4.1 –

12

Vous pouvez également utiliser field = 1-field ou field =! field

+0

C'est vraiment un commentaire, pas une réponse à la question. Veuillez utiliser "ajouter un commentaire" pour laisser un commentaire à l'auteur. – Pratik

+8

@Pratik: Je suis sûr que c'est une réponse (aussi longtemps que l'OP le veut), merci de votre mention. – zerkms

+0

field =! champ, celui-ci est la bonne réponse. – rishad2m8