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中文網其他相關文章!