在 MySQL 中对多个表错误使用 UPDATE 和 LIMIT
在 MySQL 中使用 JOIN 操作更新多个表时,存在某些限制。其中一项限制是无法使用 LIMIT 子句,如错误消息“UPDATE 和 LIMIT 的使用不正确。”所示。
如何解决问题:
根据MySQL UPDATE文档,“对于多表语法,UPDATE会更新table_references中满足条件的每个表中的行。在这种情况下,不能使用ORDER BY和LIMIT。”
因此,在您提供的代码片段中:
<code class="php">$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";</code>
要纠正此问题,您必须删除 LIMIT 1 子句。这将导致根据指定条件将更新应用于“users”和“contact_info”表中的所有匹配行。
以上是为什么MySQL在更新多个表时会抛出'不正确使用UPDATE和LIMIT”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!