You can‘t specify target table xxx‘ for update in FROM clause

30 阅读1分钟

文章目录


前言

错误明显mysql报错


一、错误sql

DELETE
FROM
  `a`
WHERE CODE IN
  (	
  SELECT CODE
  FROM `a` WHERE id = 100
  )

错误截图

二、解决办法

错误就是 删除语句中的子查询中包括该表的查询

DELETE
FROM
  `a`
WHERE CODE IN
  (	
  SELECT * FROM (
  SELECT CODE
  FROM `a` WHERE id = 100
  ) tmp
  )

解决方案就是将这个查询用一个临时查询包起来,包一层之后就没问题了


总结

尽量不应该在 增删改 的里面用查询语句,如果用的话,应该搞一个临时包裹下

本文转自 jimolvxing.blog.csdn.net/article/det…,如有侵权,请联系删除。