我有来自SQL查询的数据,该文件是' fileUnavailable'并且需要插入另一个“文件可用”的表中。'值为1或0,我需要进行SQL插入。由于fileUnavaiable和fileAvailable相反,我需要将第一个值更改为1,如果它是0或0,如果它是1.原来,我只想做一个if,否则改变价值的陈述,但这似乎太笨重,似乎太简单了,因为没有一个方法已经存在。
我很好奇SQL是否有类似!(fileUnavailable)但适用于1和0,因为这些值是我的数据库中的整数。
伪:
INSERT INTO table (fileAvailable) VALUES ( NOT($fileUnavailable));
答案 0 :(得分:2)
使用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) );
答案 1 :(得分:0)
我从另一个堆栈溢出问题中找到了这个。
INSERT INTO `table` SET `my_bool` = NOT my_bool
Update a boolean to its opposite in SQL without using a SELECT