是否有可能在MySQL中使用IF(cond1 AND cond2,result,else result)?

时间:2013-04-05 07:55:48

标签: mysql if-statement

如果连续5列的值为0,我想进行更新查询。我的第一个想法是:

UPDATE `table_name` 
SET `count` = IF(`col1`=0.00 AND 
                 `col2`=0.00 AND 
                 `col3`=0.00 AND 
                 `col4`=0.00 AND 
                 `col5`=0.00,  count+1, count)

但我认为在IF条件下使用AND不起作用。任何的想法?先谢谢

2 个答案:

答案 0 :(得分:3)

AND中使用IF完全有效,但正如Grijesh所说,使用WHERE子句中的条件是通常的方法。

您的查询不应该出错。

答案 1 :(得分:2)

我认为你需要这个,如果我没有错,我看起来很简单:

UPDATE `table_name` 
SET    `count`= `count` + 1
WHERE  `col1`=0.00 AND `col2`=0.00 AND 
       `col3`=0.00 AND `col4`=0.00 AND 
       `col5`=0.00;

修改

@Bart Friederichs的回答是正确的和/或在if()

中有效

IF() 的作用类似于:IF() function

IF(<condition>, <value if true>, <value if false>)  

我执行以下实验,并据此我相信您的查询将有效。 (这只是我的想法,我不确定

mysql> SET  @a=IF(0 AND 1,5,3);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @a;
+------+
| @a   |
+------+
|    3 |
+------+
1 row in set (0.00 sec)

注意:您可以执行=,并且可以在IF()函数中使用AND / OR。