2012-01-17 47 views
1

我在mysql中使用更新查詢將我的數據庫中發佈的行更改爲1或0.有沒有辦法在一個查詢中自動執行此操作,即,如果數據庫在發佈時有1,則會將其設置爲0如果它有一個0,它會將它設置爲1 ...就像一個開關?在MySQL中開/關查詢?

由於

回答

1
UPDATE tbl SET published = !published WHERE ... 
+0

謝謝 - 請給予好評,如果/當你能。 (我很高興我用'!!發佈'而不是'ABS(SIGN(發佈 - 1))'):) – pilcrow 2012-01-17 18:10:54

8

假設該字段的一個布爾/比特的字段,然後

UPDATE table SET bitfield = ~bitfield 

其中~是MySQL的逐位操作者NOT

+0

+1的波浪操作 – pilcrow 2012-01-17 17:13:08

1

您可以使用條件查詢來做到這一點。事情是這樣的,例如

UPDATE table SET published = IF(published = 1, 0, 1) 
3

如果該字段爲INT,則:

UPDATE table 
SET field = 1 - field 
WHERE ...