You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL批量更新两列:如何通过CSV(按主键映射)加载新值

批量更新MySQL商品表的解决方案

步骤1:创建临时表

先创建一个临时表存储CSV中的更新数据,字段类型需和原表items_tbl对应:

CREATE TEMPORARY TABLE temp_item_updates (
    item_no VARCHAR(255), -- 必须与原表items_tbl的item_no类型完全一致(如原表是INT则改为INT)
    new_food_category VARCHAR(255),
    new_promo_type VARCHAR(255)
);

步骤2:导入CSV数据到临时表

使用LOAD DATA LOCAL INFILE加载本地CSV文件,根据你的CSV格式调整参数:

LOAD DATA LOCAL INFILE 'C:/your_file_path/update_data.csv' -- 替换为你的CSV实际路径,Windows路径用/或\\
INTO TABLE temp_item_updates
FIELDS TERMINATED BY ',' -- CSV字段分隔符,逗号为默认,制表符则改为'\t'
ENCLOSED BY '"' -- 若CSV字段用双引号包裹则保留,无则删除此句
LINES TERMINATED BY '\n' -- Windows系统可尝试改为'\r\n'
IGNORE 1 LINES; -- 若CSV第一行是表头则保留,无则删除此句

注意:需确保MySQL Workbench允许加载本地文件——在连接设置的Advanced标签中开启LOCAL INFILE,或执行SET GLOBAL local_infile = 1;(需对应权限)。

步骤3:批量更新原表

通过主键item_no关联临时表与原表,批量更新目标字段:

UPDATE items_tbl
JOIN temp_item_updates ON items_tbl.item_no = temp_item_updates.item_no
SET
    items_tbl.food_category = temp_item_updates.new_food_category,
    items_tbl.promo_type = temp_item_updates.new_promo_type;

可执行以下语句验证更新结果:

SELECT i.item_no, i.food_category, i.promo_type
FROM items_tbl i
JOIN temp_item_updates t ON i.item_no = t.item_no;

可选:清理临时表

临时表会在会话结束后自动销毁,也可手动删除:

DROP TEMPORARY TABLE temp_item_updates;

内容的提问来源于stack exchange,提问作者LaChelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:42:10