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

ANDanで使用することIFは完全に有効ですが、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 に答える