如果连续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不起作用。任何的想法?先谢谢
答案 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。