[HY000][1093] You can't specify target table 'telemedicine_covid_after' for update in FROM clause
时间: 2024-03-03 21:53:55 浏览: 103
用Verilog描述路径延迟模块.rar_specify verilog_specify语句_verilog specify_v
这个错误通常是由于 MySQL 的限制引起的,它不允许在 FROM 子句和 UPDATE 子句中同时引用同一个表。为了解决这个问题,你可以使用子查询来避免直接引用被更新的表,例如:
```sql
UPDATE telemedicine_covid_after
SET status = 'recovered'
WHERE id IN (
SELECT id
FROM (
SELECT id
FROM telemedicine_covid_after
WHERE status = 'positive'
) as temp
);
```
在这个查询中,我们首先使用一个子查询来选择需要更新的行的 ID,然后将其作为条件传递给 UPDATE 子句,以更新这些行的状态为 "recovered"。
请注意,在这个查询中,我们使用了一个额外的内部子查询来避免直接引用被更新的表。这个内部子查询返回一个中间结果集,我们将其视为一个临时表,并在外部子查询中引用它,以避免直接引用被更新的表。
阅读全文