不正確使用UPDATE 和LIMIT
MySQL 使用者在嘗試執行涉及UPDATE 語句和LIMIT 的查詢時可能會遇到錯誤“不正確使用UPDATE 和LIMIT” LIMIT 子句。
要解決此問題,了解 UPDATE 語句在與多個表一起使用時的限制非常重要。根據MySQL 文檔,「對於多表語法,UPDATE 會更新table_references 中指定的滿足條件的每個表中的行。在這種情況下,不能使用ORDER BY 和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";
查詢嘗試使用多個表(users 和contact_info)執行更新,同時也套用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) . "');";
透過刪除 LIMIT 子句,查詢將成功執行並更新使用者表中指定的行。
以上是為什麼 MySQL 會拋出「更新和限制的使用不正確」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!