mysql 从同一个表获取数据update自身报错一例

我在mysql中,想将一些记录的某个字段,改成跟某条记录的该字段的值一样,语句如下:

sql 复制代码
update org_user set password=(select password from org_user where loginname='admin' limit 1) where userid>1000;

结果就报错了,提示:

Error Code: 1093. You can't specify target table 'org_user' for update in FROM clause。看这意思,不能从表中获取数据来更新自己?

果然,如果从别的表拿数据就可以:

sql 复制代码
--克隆一个表
create table org_user_tmp as select * from org_user;

--从正式表拿数据更新克隆表,OK
update org_user_tmp set password=(select password from org_user where loginname='admin' limit 1) where userid>1000;

这种语句在别的数据库,比如oracle,是没有问题的。来到mysql就不行了。后来改成这样就可以了:

sql 复制代码
update org_user as u1 
join(select password from org_user where loginname='admin' limit 1) as u2
set u1.PASSWORD=u2.password
where u1.userid>1000;

怪哉。

相关推荐
友友马2 小时前
『 数据库 』MySQL索引深度解析:从数据结构到B+树的完整指南
数据库·mysql
IT教程资源D2 小时前
[N_151]基于微信小程序校园学生活动管理平台
mysql·校园活动小程序·springboot校园活动
小二·3 小时前
用 eBPF 实现 MySQL 慢查询实时追踪(终极实战版):零侵入、毫秒级、全上下文捕获
数据库·mysql·adb
Chloeis Syntax4 小时前
MySQL初阶学习日记(2)--- 数据库的数据类型和表的操作
数据库·学习·mysql
AI绘画小335 小时前
渗透测试数据库判断卡壳?分类 + 方法 + SQL/NoSQL 脚本速用
服务器·数据库·sql·mysql·web安全·nosql
启明真纳6 小时前
Logstash 从 MySQL 同步数据到 Kafka
mysql·kafka·linq
Java水解7 小时前
MySQL 正则表达式:REGEXP 和 RLIKE 操作符详解
后端·mysql
落叶的悲哀8 小时前
mysql tidb like查询有换行符内容问题解决
数据库·mysql·tidb
凉栀お_8 小时前
MySQL第五次作业(触发器,存储过程)
android·mysql·adb
wangchen_08 小时前
MySQL索引
数据库·mysql