使⽤mysql⼀条sql语句先查询后修改
今天使⽤同⼀张表先查询再修改,出现了⼀个错误You can’t specify target table ‘doc_param’ for update in FROM clause,意思就是你不能先查询⼀张表的同时⼜修改另⼀张表。
解决⽅案就是再查询之后定义⼀个临时表,下⾯是sql语句
错误sql
UPDATE doc_param set enum_id = 18 where id in (
SELECT id from doc_param p WHERE p.doc_id in (SELECT f.id from doc_info f dule_id = 5 and f.parent_id !=0
) and p.name like "%ContPrintFlag%"
)
mysql下载后的初次使用正确的sql
UPDATE doc_param set enum_id = 18 where id in (
SELECT temp.id from ( //在外⾯新定义⼀个表
SELECT * from doc_param p WHERE p.doc_id in (SELECT f.id from doc_info f dule_id = 5 and f.parent_id !=0
) and p.name like "%ContPrintFlag%"
) temp
)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论