2017-06-06 3 views
0

Hier ist meine Einfügen Skripte:MySQL-Update, wenn der Wert größer ist als aktueller Wert

INSERT INTO CONTENT (content_id, version, description) 
VALUES ('123', '1', 'This is an example') 
ON DUPLICATE KEY UPDATE version=VALUES(version),description=VALUES(description) 

content_id pk ist. Wenn es einen doppelten Schlüssel gibt, möchte ich den Wert unter version überprüfen. Wenn es größer ist als das, was ich einfügen möchte, dann ignoriere die neue Einfügung. Andernfalls aktualisieren Sie den mit content_id in db. Ich habe versucht, meine Frage zuerst auf Stapelüberlauf zu suchen und fand dieses: MySQL update if value is greater than that current value. Aber es löst meinen Fall nicht. Irgendwelche Vorschläge?

Antwort

1

INSERT INTO CONTENT (content_id, version, description) VALUES ('123', '1', 'This is an example') ON DUPLICATE KEY UPDATE version= CASE WHEN VALUES(version) > version THEN VALUES(version) ELSE version END, description= CASE WHEN VALUES(version) > version THEN VALUES(description) ELSE description END

Verwandte Themen