在MYSQL中使用一个查询更新列

时间:2018-07-30 06:17:39

标签: mysql

要更新数据库中的列,我使用以下查询

UPDATE table_name
SET column1 = value1
WHERE condition;

此查询的问题是我最终一次更新了一列

我想通过设置条件并更新满足条件集的整个列来更新列

我尝试过的例子:

UPDATE adggtnz1.lng01_rpt_animrec
SET origin = 'New'
WHERE origin = NULL;

,此查询的结果为

0 row(s) affected Rows matched: 0  Changed: 0  Warnings: 0  0

样本数据图片:

enter image description here

2 个答案:

答案 0 :(得分:0)

在查询下面使用case when子句进行条件更新就是一个例子

UPDATE table_name
SET column1 =  case when 1<2 then value1 else  value2 end 
WHERE condition;

答案 1 :(得分:0)

Why does NULL = NULL evaluate to false in SQL server

WHERE origin = NULL;

WHERE origin is NULL;
create table `lng01_rpt_animrec`
(
  `origin` varchar(10)
)
insert into `lng01_rpt_animrec` (`origin`) values
('EADD'),
(null),
('EADD'),
(null),
(null),
('EADD'),
(null),
('EADD'),
('EADD');
UPDATE
  lng01_rpt_animrec
SET
  origin = 'New'
WHERE
  origin is null;
select * from `lng01_rpt_animrec`
| origin |
| :----- |
| EADD   |
| New    |
| EADD   |
| New    |
| New    |
| EADD   |
| New    |
| EADD   |
| EADD   |

db <>提琴here