首頁  >  文章  >  資料庫  >  為什麼我不能在 MySQL 中的多表 UPDATE 查詢中使用 LIMIT?

為什麼我不能在 MySQL 中的多表 UPDATE 查詢中使用 LIMIT?

Linda Hamilton
Linda Hamilton原創
2024-10-26 02:50:02641瀏覽

Why Can't I Use LIMIT in an UPDATE Query with Multiple Tables in MySQL?

在MySQL 查詢中不正確使用UPDATE 和LIMIT

問題:

我該如何解決執行MySQL 查詢時「不正確使用UPDATE 和LIMIT」的錯誤?

問題:

以下MySQL 代碼由於不正確使用UPDATE 而引發錯誤和LIMIT:

$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "') LIMIT 1";

答案:

UPDATE 的MySQL 文件指出:

「對於多表語法,UPDATE 更新行在table_references中指定的每個滿足條件的表中,不能使用ORDER BY和LIMIT。」

因此,使用多表語法進行UPDATE時,無法使用LIMIT。條款。此限制是為了防止多個表之間的更新不一致。

更正:

要解決該錯誤,請從查詢中刪除 LIMIT 子句:

$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "')";

以上是為什麼我不能在 MySQL 中的多表 UPDATE 查詢中使用 LIMIT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn