2010-11-22 15 views
0

Je dois effectuer une mise à jour qui doit changer un champ booléen dans une table. Si la valeur est true, la valeur doit être false et opposée.SQL KeyWord Non

Je ne suis pas sûr comment fonctionne pas de mots clés dans SQL et ne marche pas ci-dessous semblent fonctionner:

Update tbl set field=!field where ID=1

Répondre

0
Update tbl set ID=1 where field<>field 

<> n'est pas opérateur égal à sql

+1

Vous ne pouvez pas "SET" un champ "pas égal" à n'importe quoi, dans n'importe quel dialecte de SQL avec lequel je suis familier. – cdhowie

+0

Je pense que OP signifie complément logique/négation – StuartLC

3

L'opérateur ! est appelé NOT dans SQL. Essayez ceci:

UPDATE tbl 
SET field = NOT field 
WHERE ID = 1 

J'ai vérifié que cela fonctionne sur PostgreSQL, et il devrait fonctionner sur un moteur DB digne de ce nom.