我在数据库中导入表格。此表格列为product_id
和ext_product_id
。 Product_id
是唯一的,但表中的ext_product_id
具有相同的内容。我必须更新此多个ext_product_id
。我的表有数千列。我无法手动更新这些行。
我的表格是:
product_id ext_product_id
44 796666
45 796666
46 796666
306 1275631
308 1275631
309 1275631
. .
我有这样的表格:
my table foramt is:
product_id ext_product_id
44 796666
45 796667
46 796668
306 1275631
308 1275632
309 1275633
. .
如何更新?
我的查询仅适用于单个记录:
update 13_product_id
set ext_product_id='796667'
where product_id='45';
我必须更新多行,请给我一个建议。
答案 0 :(得分:2)
尝试更新您的ID所在位置:
update 13_product_id
set ext_product_id='796666'
where product_id in ('45','16','15');
等等
答案 1 :(得分:1)
根据您的想法,您可以在循环中添加多个ID,而不是
where product_id = 45
你可以
where product_id in (45,46,47,48)
答案 2 :(得分:0)
如果您知道要更新的product_id,请使用 IN ,如下所示:
update product_id
set ext_product_id='796666'
where product_id IN (45, 46, 386...);
或者,如果您想使用该ext_product_id更新所有行,只需删除“where”子句::
update product_id
set ext_product_id='796666'
答案 3 :(得分:0)
您是否尝试更新与'45'
具有相同扩展产品的所有行?如果是这样,这应该做你想要的:
update 13_product_id toupdate join
(select ext_product_id
from 13_product_id
where product_id = '45'
) t
on toupdate.ext_product_id = t.ext_product_id
set toupdate.ext_product_id = '796667';