2016-11-04 109 views
1

我有一個SQL查詢是'fileUnavailable',需要插入到另一個'fileAvailable。值是1或0,我需要做一個SQL插入。由於fileUnavaiable和fileAvailable是相反的,我需要將第一個值更改爲1,如果它是0或0,如果它是1.最初,我想只做一個if,else語句來更改值,但似乎笨重並且似乎太簡單了,因爲那裏沒有方法了。SQL:插入1如果值= 0和0如果值= 1

我最關心的是SQL是否有像!(fileUnavailable)這樣的東西,但是適用於1和0,因爲這些值是我的數據庫中的ints。

僞:

INSERT INTO table (fileAvailable) VALUES (NOT($fileUnavailable)); 

回答

2

使用提示與ABS

UPDATE table SET field = ABS(field - 1) 

所以,如果field1,然後field - 10abs(0)仍然0

如果field0,然後field - 1-1abs(-1)1

ABS() man page.

對於查詢您的問題提供:

INSERT INTO table (fileAvailable) VALUES (ABS($fileUnavailable - 1)); 
+0

如果什麼值是0,但?你是說,在if,else語句中使用它? – DJSweetness

+1

0-1是-1,然後它的ABS是1並且不是,如果聲明是需要的,則否。此查詢已完成,因爲它是 –

+0

哦,我現在明白了! – DJSweetness

相關問題