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

如何用父行值更新子记录?解决MySQL 1093更新错误

解决MySQL更新时无法引用目标表的问题

你碰到的[HY000][1093]错误是MySQL的固有限制:不能在UPDATE/DELETE语句的子查询FROM子句中直接引用要修改的目标表。你原来的写法触发了这个限制,得换用JOIN的方式来实现需求。

修复后的SQL语句

UPDATE queue_items AS child
JOIN queue_items AS parent ON child.origin_id = parent.id
SET child.property_value = parent.property_value
WHERE (child.property_value IS NULL OR LENGTH(child.property_value) < 5)
AND child.origin_id IS NOT NULL;

逻辑说明

  • 通过别名child和parent区分子行与父行,用origin_id关联两者
  • 直接将父行的property_value赋值给符合条件的子行,既避开子查询的限制,执行效率也更高

安全验证建议

执行更新前,先运行以下SELECT语句确认要更新的行和对应的值是否正确,避免误操作:

SELECT child.id, child.property_value AS 旧值, parent.property_value AS 新值
FROM queue_items AS child
JOIN queue_items AS parent ON child.origin_id = parent.id
WHERE (child.property_value IS NULL OR LENGTH(child.property_value) < 5)
AND child.origin_id IS NOT NULL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 22:37:07