SQL:如果value = 0则INSERT 1,如果value = 1则为0

时间:2016-11-04 16:38:31

标签: php sql

我有来自SQL查询的数据,该文件是' fileUnavailable'并且需要插入另一个“文件可用”的表中。'值为1或0,我需要进行SQL插入。由于fileUnavaiable和fileAvailable相反,我需要将第一个值更改为1,如果它是0或0,如果它是1.原来,我只想做一个if,否则改变价值的陈述,但这似乎太笨重,似乎太简单了,因为没有一个方法已经存在。

我很好奇SQL是否有类似!(fileUnavailable)但适用于1和0,因为这些值是我的数据库中的整数。

伪:

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

2 个答案:

答案 0 :(得分: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) );

答案 1 :(得分:0)

我从另一个堆栈溢出问题中找到了这个。

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

Update a boolean to its opposite in SQL without using a SELECT