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 サイトの他の関連記事を参照してください。