首页  >  文章  >  数据库  >  为什么我不能在 MySQL 中的多表 UPDATE 查询中使用 LIMIT?

为什么我不能在 MySQL 中的多表 UPDATE 查询中使用 LIMIT?

Linda Hamilton
Linda Hamilton原创
2024-10-26 02:50:02633浏览

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