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