[英]SQL: INSERT 1 if value=0 and 0 if value=1
我有一個來自SQL查詢的數據為“ fileUnavailable”,並且需要插入到另一個名為“ fileAvailable”的表中。 值是1或0,我需要執行SQL插入。 由於fileUnavaiable和fileAvailable是相反的,因此我需要將第一個值更改為1(如果為0則為0)或0(如果為1)。本來,我原本只是想做一個if,else語句來更改該值,但這看起來笨重似乎太簡單了,以至於還沒有一種方法。
我對SQL是否具有!(fileUnavailable)之類的東西非常好奇,但它適用於1和0,因為這些值在我的數據庫中是整數。
偽:
INSERT INTO table (fileAvailable) VALUES ( NOT($fileUnavailable));
對ABS
使用提示:
UPDATE table SET field = ABS(field - 1)
因此,如果field
為1
,則field - 1
為0
, abs(0)
仍為0
。
如果field
為0
,則field - 1
為-1
, abs(-1)
為1
。
對於您在問題中提供的查詢:
INSERT INTO table (fileAvailable) VALUES ( ABS($fileUnavailable - 1) );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.