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

mysql ersetzen in alternativ

Sie sollten die Syntax INSERT...ON DUPLICATE KEY UPDATE verwenden.

http://dev.mysql.com/doc /refman/5.1/en/insert-on-duplicate.html

Hier ist ein Beispiel, das versucht, einen Datensatz mit einer ID, einem Geburtstag und einem Namen zu erstellen. Wenn ein Datensatz mit dem ID-Feld vorhanden ist, wird die angegebene Aktualisierung durchgeführt. Die Tabelle enthält viele andere Felder wie E-Mail-Adresse, Postleitzahl usw. Ich möchte diese Felder in Ruhe lassen, wenn ich aktualisiere. (REPLACE INTO würde alle diese Daten verlieren, wenn ich sie nicht in die REPLACE INTO-Anweisung aufnehmen würde.)

INSERT INTO user (userid,birthday,first_name,last_name) 
   VALUES (1234,'1980-03-07','Joe','Smith') 
ON DUPLICATE KEY UPDATE 
   birthday = '1980-03-07',
   first_name = 'Joe', 
   last_name = 'Smith';