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小时内删除。