Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Insert-Abfrage funktioniert nicht mit WHERE-Klausel

MySQL INSERT-Syntax unterstützt die WHERE-Klausel nicht, sodass Ihre Abfrage in ihrer jetzigen Form fehlschlagen wird. Angenommen Ihre id Spalte ist eindeutig oder Primärschlüssel:

Wenn Sie versuchen, eine neue Zeile mit der ID 1 einzufügen, sollten Sie Folgendes verwenden:

INSERT INTO Users(id, weight, desiredWeight) VALUES(1, 160, 145);

Wenn Sie versuchen, die weight/desiredWeight-Werte für eine vorhandene Zeile mit der ID 1 zu ändern, sollten Sie Folgendes verwenden:

UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;

Wenn Sie möchten, können Sie auch die Syntax INSERT .. ON DUPLICATE KEY wie folgt verwenden:

INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145

ODER auch so:

INSERT INTO Users SET id=1, weight=160, desiredWeight=145 ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145

Beachten Sie außerdem, dass Ihre id Spalte eine Autoincrement-Spalte ist, dann können Sie sie genauso gut aus Ihrem INSERT weglassen und mysql wie gewohnt inkrementieren lassen.