Heim > Datenbank > MySQL-Tutorial > Warum schlägt meine MySQL-INSERT-Abfrage fehl, wenn ich eine WHERE-Klausel verwende?

Warum schlägt meine MySQL-INSERT-Abfrage fehl, wenn ich eine WHERE-Klausel verwende?

DDD
Freigeben: 2025-01-19 06:52:12
Original
1005 Leute haben es durchsucht

Why Does My MySQL INSERT Query Fail When Using a WHERE Clause?

Fehlerbehebung bei MySQL INSERT-Anweisungen und WHERE-Klauseln

MySQLs INSERT-Anweisung unterstützt keine WHERE-Klausel. Der Versuch, eines zu verwenden, führt zu einem Fehler. Die WHERE-Klausel wird zum Filtern von Daten in SELECT-, UPDATE- und DELETE-Anweisungen verwendet, nicht zum Einfügen.

Lassen Sie uns ein häufiges Szenario untersuchen:

INSERT INTO Users (weight, desiredWeight) VALUES (160, 145) WHERE id = 1;
Nach dem Login kopieren

Diese Abfrage zielt darauf ab, nur dann eine neue Zeile hinzuzufügen, wenn eine Zeile mit id = 1 vorhanden ist, wodurch diese Zeile effektiv aktualisiert wird. Dies ist eine falsche INSERTVerwendung.

Richtige Ansätze:

Die Lösung hängt von Ihrem gewünschten Ergebnis ab:

  • Neue Zeile hinzufügen: Um eine neue Zeile, einschließlich eines id, einzufügen, verwenden Sie:
INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);
Nach dem Login kopieren
  • Ändern einer vorhandenen Zeile: Um eine vorhandene Zeile zu aktualisieren, verwenden Sie UPDATE:
UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
Nach dem Login kopieren
  • Einfügen oder Aktualisieren (Bedingt): Um eine neue Zeile einzufügen oder eine vorhandene Zeile basierend auf einem eindeutigen Schlüssel zu aktualisieren, verwenden Sie INSERT ... ON DUPLICATE KEY UPDATE:
INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;
Nach dem Login kopieren
  • Automatisch inkrementierende IDs: Wenn id eine automatisch inkrementierende Spalte ist, lassen Sie sie in der INSERT-Anweisung weg:
INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);
Nach dem Login kopieren

Durch die Verwendung des richtigen SQL-Befehls vermeiden Sie Fehler und erreichen die beabsichtigte Datenmanipulation in Ihrer MySQL-Datenbank.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine MySQL-INSERT-Abfrage fehl, wenn ich eine WHERE-Klausel verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage