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