Heim  >  Artikel  >  Datenbank  >  Warum löst meine MySQL-UPDATE-Anweisung eine „falsche Verwendung von UPDATE und LIMIT“ aus?

Warum löst meine MySQL-UPDATE-Anweisung eine „falsche Verwendung von UPDATE und LIMIT“ aus?

Barbara Streisand
Barbara StreisandOriginal
2024-10-25 09:53:02188Durchsuche

Why Does My MySQL UPDATE Statement Throw

Den MySQL-Fehler verstehen: Falsche Verwendung von UPDATE und LIMIT

Wenn Sie die UPDATE-Anweisung von MySQL zum Ändern von Daten verwenden, kann der Fehler „Falsche Verwendung von UPDATE und LIMIT“ auftreten ." Dieser Fehler tritt auf, wenn Sie versuchen, die UPDATE-Anweisung mit einer ORDER BY- oder LIMIT-Klausel innerhalb eines Aktualisierungsvorgangs für mehrere Tabellen zu kombinieren.

Kontext:

Im bereitgestellten Codeausschnitt die UPDATE-Anweisung versucht, die Benutzertabelle und die zugehörige Tabelle contact_info basierend auf bestimmten Bedingungen zu ändern. Es enthält jedoch auch eine LIMIT 1-Klausel, die in solchen Szenarien nicht zulässig ist.

Die Lösung:

In der MySQL-Dokumentation heißt es ausdrücklich, dass für UPDATE-Operationen mit mehreren Tabellen ORDER BY und LIMIT gelten kann nicht verwendet werden. Dies liegt daran, dass die UPDATE-Anweisung alle übereinstimmenden Zeilen in den verbundenen Tabellen aktualisieren muss und die Beschränkung der Aktualisierung auf eine bestimmte Anzahl von Zeilen zu unerwarteten Ergebnissen führen kann.

Um diesen Fehler zu beheben, entfernen Sie einfach die LIMIT 1-Klausel aus Ihrer UPDATE-Anweisung. Der aktualisierte Code sieht in etwa so aus:

$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) . "')";
$r = mysqli_query ($mysqli, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($mysqli));

Dieser geänderte Code führt den Aktualisierungsvorgang wie vorgesehen aus, ohne Einschränkungen hinsichtlich der Anzahl übereinstimmender Zeilen.

Das obige ist der detaillierte Inhalt vonWarum löst meine MySQL-UPDATE-Anweisung eine „falsche Verwendung von UPDATE und LIMIT“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn