2013-03-03 2 views
6

ブールフィールドを更新するには、値を選択することなくフィールドを更新することができますか?長いったらしいようだ...SELECTを使用せずにSQL内でブール値を更新する

私は

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

は現在、私は1つのクエリでmy_boolを選択する必要が何を意味するかの擬似例、その値に迅速なチェックを行うので、私は2番目のテーブルを更新することができますクエリ。

可能であれば、それを1つのクエリに減らすことを望んでいましたか?

答えて

26

使用NOT

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

は、だからそれは本当=偽= trueとfalseになります!ニート! :)ありがとう! – Sir

+1

答えをチェックするのに13分待ってください - upvotesが十分に高いなら、もっと短くするべきです:P – Sir

+0

は 'SET active = NOT active'か' SET active = NOT(active) ' – Sir

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

mssql 2014 – Hisham