MySQL错误You can't specify target table for update in FROM clause

  • 内容
  • 评论
  • 相关

错误代码:

[HY000][1093] You can't specify target table 'act_examine' for update in FROM clause

错误原因:

对同一张表做查询的同时做删除或者更新;
如下SQL语句:

UPDATE t1 SET status=0
WHERE id IN
(SELECT id FROM t1 WHERE status=1)

解决办法:

加一个中间表,让mysql检测不到是同一张表;

SQL语句:

UPDATE t1 SET status=0
WHERE id IN
(SELECT tmp.id FROM ( SELECT id FROM t1 WHERE status=1) tmp)

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注