mysql删除符合条件的数据
⼀般使⽤=的情况可以直接删除。如:
DELETE FROM sys_menu WHERE pcode = 'member'
delete in但是如果使⽤带有查询本表的select时,sql如下:
DELETE FROM sys_menu WHERE pcode in (SELECT `code` FROM sys_menu WHERE pcode = 'member')则会报错如下:
You can't specify target table 'sys_menu' for update in FROM clause
意思是不能先select出同⼀表中的某些值,再update这个表(在同⼀语句中)。
这时需要利⽤临时表:
1、建⽴临时表
CREATE TABLE temp(SELECT `code` FROM sys_menu WHERE pcode = 'member')
2、执⾏删除
DELETE FROM sys_menu WHERE pcode in (SELECT * FROM temp)
3、删除临时表
DROP TABLE temp
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论