您好,登錄后才能下訂單哦!
一、 需求
要將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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。