mysql:error 1093 update子查询

发布时间:2020-07-21 11:56:34 作者:ilanqing
来源:网络 阅读:799

一、 需求

要将base_info.name以wl_开头的数据的status字段更新为2


二、执行


Update base_info

Set a.status=2

Where (select id from base_info where name like ‘%xx%’)

 

执行时,提示1093错误,

ERROR 1093 (HY000): You can't specify target table 't' for update in FROM clause 。

mysql不支持修改一个表的时候子查询不能是同一个表。


三、 优化

通过临时表解决这个问题

方法一:

Update base_info

Set a.status=2

Where id in ( select * from (select id from base_info where name like ‘%xx%’ ) tmp )

 

方法二:

update base_info b

join (select id from base_info where act_name like 'wlq_%') tmp

on tmp.id= b.id

set b.expand1=2


推荐阅读:
  1. mysql Error1093错误
  2. MySQL如何消除重复行

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

update dat error 1

上一篇:HTML如何实现点击按钮展开菜单

下一篇:Oracle之静默安装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》