我有一个包含多列的表。 此表中的 2 列分别是item_no列和Unit_Cost
必须更改 100 种不同物品的单位成本。 我想编写一个 SQL 查询来使用新Unit_Cost更新所有 100 篇文章。
更新应仅应用于单位成本列,保持所有其他列的数据不变
谢谢
从您的评论中,您可以尝试将Update
与CASE WHEN
一起使用。
用CASE WHEN
写下您的病情
update Item_Table
Set unit_cost=(
CASE WHEN item_no = 'A' THEN 20
WHEN item_no = 'B' THEN 12
WHEN item_no = 'C' THEN 32
END
)
where item_no in ('A','B','C')
这是一些示例
create table Item_Table (
item_no varchar(50),
unit_cost int
);
insert into Item_Table values ('A',1);
insert into Item_Table values ('B',1);
insert into Item_Table values ('C',1);
insert into Item_Table values ('D',1);
update Item_Table
Set unit_cost=(
CASE WHEN item_no = 'A' THEN 20
WHEN item_no = 'B' THEN 12
WHEN item_no = 'C' THEN 32
END
)
where item_no in ('A','B','C')
查询 1:
SELECT * FROM Item_Table
结果:
| item_no | unit_cost |
|---------|-----------|
| A | 20 |
| B | 12 |
| C | 32 |
| D | 1 |
UPDATE <table> SET <column> = <value> WHERE <condition>
请注意,该条件是可选的,如果要将更新应用于表中的所有记录,则无需提供条件。
https://dev.mysql.com/doc/refman/8.0/en/update.html