1

如果连续 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 是行不通的。任何想法?之前谢谢

4

2 回答 2

3

使用ANDin anIF是完全有效的,但正如 Grijesh 建议的那样,在WHERE子句中使用条件是通常的做法。

您的查询虽然不应该给出任何错误。

于 2013-04-05T07:57:33.997 回答
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 的答案是正确的 AND/OR 在 if() 中是有效的

IF() :(IF()函数

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。

于 2013-04-05T07:59:29.287 回答