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

MySQL去重约束下修剪含换行的Product_Name字段

处理MySQL表中带末尾换行的重复产品名称

操作前必做:备份数据

先备份原表,避免操作失误导致数据丢失:

CREATE TABLE my_product_table_backup LIKE my_product_table;
INSERT INTO my_product_table_backup SELECT * FROM my_product_table;

步骤1:修剪无重复风险的行

通过NOT EXISTS子查询精准筛选,只更新那些修剪换行后的值在表中无重复的行,避免更新后产生重复数据:

UPDATE my_product_table t1
SET Product_Name = TRIM(TRAILING '\n' FROM Product_Name)
WHERE t1.Product_Name REGEXP '\n'
AND NOT EXISTS (
    SELECT 1 FROM my_product_table t2
    WHERE t2.Product_Name = TRIM(TRAILING '\n' FROM t1.Product_Name)
    AND t1.ID != t2.ID
);

逻辑说明:

  • 先筛选出所有Product_Name带末尾换行的行
  • 对每行修剪换行后的值,检查表中是否已有其他行的Product_Name与之完全匹配
  • 仅当无匹配时执行修剪更新,有匹配则跳过该行

步骤2:删除剩余带换行的行

经过步骤1后,剩余的带换行行都是修剪后会与现有数据重复的,直接删除即可:

DELETE FROM my_product_table
WHERE Product_Name REGEXP '\n';

验证处理结果

可以用以下语句确认处理效果:

-- 检查是否还有带换行的行残留
SELECT * FROM my_product_table WHERE Product_Name REGEXP '\n';
-- 检查是否存在重复的产品名称
SELECT Product_Name, COUNT(*) FROM my_product_table GROUP BY Product_Name HAVING COUNT(*) > 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:30:19