MySQL 错误故障排除:“您无法在 FROM 子句中指定要更新的目标表”
当您的 UPDATE
语句包含引用正在更新的同一表的子查询时,就会出现这种常见的 MySQL 错误。 MySQL 对这种做法的限制源于其内部处理限制。
解决方案涉及使用括号将表引用封装在内部查询中。 这将为更新操作创建一个临时的、独立的数据集。 考虑这个例子:
<code class="language-sql">UPDATE myTable SET myTable.A = (SELECT B FROM (SELECT * FROM myTable) AS subquery)</code>
这里,内部查询中的 myTable
被别名为 subquery
,有效地将其与主 UPDATE
语句分开。 然后 MySQL 使用该子查询的结果集来执行更新。
为了获得最佳性能,请仅选择内部查询中必要的列,并始终包含 WHERE
子句来优化更新的行。 这可以防止对整个表进行不必要的处理。
以上是如何解决 MySQL 错误:'您无法在 FROM 子句中指定要更新的目标表”?的详细内容。更多信息请关注PHP中文网其他相关文章!