我在mysql中使用更新查詢將我的數據庫中發佈的行更改爲1或0.有沒有辦法在一個查詢中自動執行此操作,即,如果數據庫在發佈時有1,則會將其設置爲0如果它有一個0,它會將它設置爲1 ...就像一個開關?在MySQL中開/關查詢?
由於
我在mysql中使用更新查詢將我的數據庫中發佈的行更改爲1或0.有沒有辦法在一個查詢中自動執行此操作,即,如果數據庫在發佈時有1,則會將其設置爲0如果它有一個0,它會將它設置爲1 ...就像一個開關?在MySQL中開/關查詢?
由於
UPDATE tbl SET published = !published WHERE ...
假設該字段的一個布爾/比特的字段,然後
UPDATE table SET bitfield = ~bitfield
其中~
是MySQL的逐位操作者NOT
。
+1的波浪操作 – pilcrow 2012-01-17 17:13:08
您可以使用條件查詢來做到這一點。事情是這樣的,例如
UPDATE table SET published = IF(published = 1, 0, 1)
如果該字段爲INT
,則:
UPDATE table
SET field = 1 - field
WHERE ...
謝謝 - 請給予好評,如果/當你能。 (我很高興我用'!!發佈'而不是'ABS(SIGN(發佈 - 1))'):) – pilcrow 2012-01-17 18:10:54