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

MySQL Error 1093及子查询多行问题求助:修改laptop_backup表Ram字段

解决laptop_backup表Ram字段去GB的更新错误

错误原因分析

  • 第一个错误(Error Code: 1093):MySQL有明确限制,执行UPDATE操作时,不能在FROM子句中直接引用要更新的目标表,你第一次写的语句里子查询直接查询了laptop_backup,触发了这个规则。
  • 第二个错误(Subquery returns more than 1 row):你嵌套的子查询返回了整个表所有行的处理结果,是一个多行数据集,但SET Ram需要给每一行的字段赋值单个值,因此触发了该报错。

正确的SQL语句

根本不需要嵌套子查询,直接在SET中对当前行的Ram字段应用REPLACE函数即可,UPDATE会自动逐行处理每条记录:

UPDATE laptop_backup
SET Ram = REPLACE(Ram, 'GB', '');

如果你的Ram字段还存在其他非数字单位(比如MB),或者想确保只保留纯数字部分,可以使用正则替换(仅支持MySQL 8.0及以上版本):

UPDATE laptop_backup
SET Ram = REGEXP_REPLACE(Ram, '[^0-9]', '');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:57:10