2013-03-03 12 views
6

È possibile aggiornare un campo bool dicendolo per aggiornare il campo al contrario di quello che è senza dover selezionare il valore - controllarlo quindi aggiornare di conseguenza quale sembra prolisso ...Aggiornare un valore booleano al suo opposto in SQL senza utilizzare un SELECT

uno pseudo esempio di ciò che intendo

UPDATE `table` SET `my_bool` = opposite_of(my_bool) 

Attualmente devo SELEZIONARE my_bool in una query poi fare un rapido controllo sul suo valore così posso aggiornare la tabella in un secondo query.

Speravo di ridurlo a una singola query, se possibile?

risposta

26

uso NOT

UPDATE `table` SET `my_bool` = NOT my_bool 
+0

in modo che rende vero = false e falso = true! Neat! :) Grazie! – Sir

+1

Hai aspettato 13 minuti per spuntare la tua risposta - dovrebbe essere più breve se l'upvote è abbastanza alto: P – Sir

+0

è 'SET attivo = NON attivo' o' SET attivo = NOT (attivo) ' – Sir

5
UPDATE `Table` SET `my_bool` = 1^`my_bool` 
+2

ha funzionato molto bene in mssql 2014 – Hisham

Problemi correlati