1. 程式人生 > >mysql 批量更新子查詢

mysql 批量更新子查詢

報錯的sql :

UPDATE pro_t_info as p SET Pro_Code = concat(Pro_Code,Pro_ID) WHERE Pro_ID in(
 select Pro_ID from pro_t_info where  channel_source = 0 and Pro_CreateTime >'2018-04-23'  group by Pro_Code having count(Pro_Code)>1)

錯誤資訊:[Err] 1093 - You can't specify target table 'p' for update in FROM clause

可以使用的sql:

UPDATE pro_t_info as p ,(select Pro_ID from pro_t_info where channel_source = 0 and Pro_CreateTime >'2018-04-23' group by Pro_Code having count(Pro_Code)>1) as b SET p.Pro_Code = concat(p.Pro_Code,p.Pro_ID) WHERE p.Pro_ID =
b.Pro_ID