> 1093 - You can't specify target table 'id' for update in FROM clause
时间: 2023-12-25 17:03:20 浏览: 53
mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法
5星 · 资源好评率100%
这个错误通常是在 MySQL 中使用子查询时出现的。MySQL 不允许在更新语句中直接引用要更新的表,因此需要使用子查询将要更新的表包装起来。
例如,如果你想更新一个名为 `my_table` 的表中所有 `id` 大于 100 的行,你可以使用以下 SQL 语句:
```
UPDATE my_table SET column1 = value1 WHERE id IN (SELECT id FROM (SELECT id FROM my_table WHERE id > 100) AS t);
```
这里我们使用了两个嵌套的子查询,将要更新的表 `my_table` 包装成了一个临时表 `t`,然后再使用 `IN` 子句选择要更新的行。
阅读全文