Heim > Datenbank > MySQL-Tutorial > Hauptteil

## Warum ist die LIMIT-Klausel in UPDATE-Abfragen mit mehreren Tabellen in MySQL nicht zulässig?

Mary-Kate Olsen
Freigeben: 2024-10-25 10:20:02
Original
675 Leute haben es durchsucht

##  Why is LIMIT Clause Not Allowed in Multi-Table UPDATE Queries in MySQL?

MySQL-Fehler: Falsche Verwendung von UPDATE und LIMIT

Beim Ausführen einer UPDATE-Abfrage für mehrere Tabellen in MySQL kann ein Fehler auftreten aufgrund von falsche Verwendung von UPDATE und LIMIT. Dieses Problem tritt auf, wenn versucht wird, Datensätze in mehreren Tabellen zu aktualisieren, bei denen die ON-Bedingung die Tabellen verbindet und die LIMIT-Klausel verwendet wird.

In der MySQL-Dokumentation für UPDATE heißt es: „Für die Syntax mehrerer Tabellen aktualisiert UPDATE Zeilen.“ in jeder in table_references genannten Tabelle, die die Bedingungen erfüllt. In diesem Fall können ORDER BY und LIMIT nicht verwendet werden.“

Im bereitgestellten MySQL-Code versucht die Abfrage, Zeilen in „users“ und „contact_info“ zu aktualisieren " Tabellen basierend auf einer Join-Bedingung. Allerdings wird die LIMIT-Klausel verwendet, um die Anzahl der aktualisierten Zeilen auf 1 zu begrenzen. Dies ist in UPDATE-Abfragen mit mehreren Tabellen nicht zulässig.

Um dieses Problem zu beheben, entfernen Sie die LIMIT-Klausel aus der Abfrage. Dadurch kann sich die UPDATE-Anweisung auf alle Zeilen in den verbundenen Tabellen auswirken, die die angegebenen Bedingungen erfüllen. Der geänderte Code würde wie folgt aussehen:

$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));
Nach dem Login kopieren

Durch Entfernen der LIMIT-Klausel aktualisiert die Abfrage alle Zeilen in den Tabellen „users“ und „contact_info“, in denen die E-Mail-Adresse und der aktive Status mit den angegebenen übereinstimmen Werte.

Das obige ist der detaillierte Inhalt von## Warum ist die LIMIT-Klausel in UPDATE-Abfragen mit mehreren Tabellen in MySQL nicht zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!