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;
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 INSERT
Verwendung.
Richtige Ansätze:
Die Lösung hängt von Ihrem gewünschten Ergebnis ab:
id
, einzufügen, verwenden Sie:INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);
UPDATE
:UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;
INSERT ... ON DUPLICATE KEY UPDATE
:INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;
id
eine automatisch inkrementierende Spalte ist, lassen Sie sie in der INSERT
-Anweisung weg:INSERT INTO Users (weight, desiredWeight) VALUES (160, 145);
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!