首頁  >  文章  >  資料庫  >  為什麼 MySQL 會拋出「更新和限制的使用不正確」錯誤?

為什麼 MySQL 會拋出「更新和限制的使用不正確」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-10-27 11:20:02611瀏覽

Why Does MySQL Throw

不正確使用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中文網其他相關文章!

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