ホームページ  >  記事  >  データベース  >  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 は行を更新します」この場合、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。