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

MySQL同表内如何将指定ID行的内容复制到其他多个ID对应行

MySQL同表指定行字段复制更新方案

推荐实现写法(兼容MySQL全版本)

使用自连接更新逻辑,性能更高、可读性更强:

UPDATE market t_target
INNER JOIN market t_source ON t_source.ID = 4
SET 
  t_target.fruits = t_source.fruits,
  t_target.ripeness = t_source.ripeness
WHERE t_target.ID IN (1, 2);

可选子查询写法

如果更习惯子查询逻辑,需要额外嵌套一层临时表,规避MySQL同表同时查询+更新的语法限制:

UPDATE market
SET 
  fruits = (SELECT fruits FROM (SELECT fruits FROM market WHERE ID = 4) AS temp_t),
  ripeness = (SELECT ripeness FROM (SELECT ripeness FROM market WHERE ID = 4) AS temp_t)
WHERE ID IN (1, 2);

注意事项

  • 执行更新前建议先运行对应SELECT语句校验数据,避免误修改:可先执行SELECT * FROM market WHERE ID IN (1,2)确认目标行范围,也可以将UPDATE语句替换为SELECT预览待更新的字段值是否符合预期。
  • 如果需要扩展更多复制字段,只需在SET子句后追加对应字段的赋值规则即可,无需修改其他逻辑。
  • 以上语句默认适配MySQL 5.7及以上版本,其他数据库可根据对应语法规则微调。

内容的提问来源于stack exchange,提问作者mark-in-motion

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:54:03