在一个查询中更新/增加多个 MySQL 列

ajd*_*jdi 4 mysql sql sql-update

我有这个查询,它有效......

UPDATE `contacts` 
       SET `calls_to`=`calls_to`+1 
  WHERE `contact_no` = '0412345678';
Run Code Online (Sandbox Code Playgroud)

我还想做的是为成本字段添加一个值。根据我的理解,这样做的方法是......

UPDATE `contacts` 
       SET `calls_to` = `calls_to`+1, 
             `cost_to` = `cost_to`+0.25 
  WHERE `contact_no`='0412345678';
Run Code Online (Sandbox Code Playgroud)

显然,正如我在这里发布的那样,它并没有像我预期的那样工作。

- 更新 -

按照要求,表结构..

id                  int(255) auto_increment
contact_owner  varchar(255)
contact_no       varchar(11)
contact_name   varchar(255)
calls_to            int(255)
txts_to             int(255)
time_talked_to   int(255)
cost_to            decimal(65,2)
Run Code Online (Sandbox Code Playgroud)

Sal*_*lil 5

检查数据类型是否cost_to为 int。如果值不为空,则更新该列。

UPDATE `contacts` 
       SET `calls_to` = `calls_to`+1, 
             `cost_to` = `cost_to`+0.25 
  WHERE `contact_no`='0412345678' AND
          calls_to is not null AND
          cost_to is not null;
Run Code Online (Sandbox Code Playgroud)