Wenn Sie dies in einer einzigen Anweisung tun möchten (klingt nach dem, was Sie wollen), würde ich die Verwendung von INSERT ... ON DUPLICATE KEY UPDATE
empfehlen Syntax wie folgt:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
Das anfängliche INSERT
-Anweisung wird ausgeführt, wenn es keinen vorhandenen Datensatz mit dem angegebenen Schlüsselwert gibt (entweder Primärschlüssel oder eindeutig). Wenn ein Datensatz bereits vorhanden ist, wird das folgende UPDATE
Anweisung (someothervalue = 3
) wird ausgeführt.
Dies wird in allen Versionen von MySQL unterstützt. Weitere Informationen finden Sie auf der Seite MySQL-Referenzhandbuch für INSERT ... ON DUPLICATE KEY UPDATE