簡體   English   中英

SQL:如果value = 0則插入1,如果value = 1則插入0

[英]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)

因此,如果field1 ,則field - 10abs(0)仍為0

如果field0 ,則field - 1-1abs(-1)1

ABS()手冊頁。

對於您在問題中提供的查詢:

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

我是從另一個堆棧溢出問題中發現的。

INSERT INTO `table` SET `my_bool` = NOT my_bool

在不使用SELECT的情況下將布爾值更新為相反的SQL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM