Ако искате да направите това в един израз (звучи като това, което искате), бих препоръчал да използвате INSERT ... ON DUPLICATE KEY UPDATE
синтаксис, както следва:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
Първоначалният INSERT
операторът ще се изпълни, ако няма съществуващ запис със зададената стойност на ключ (първичен ключ или уникален). Ако вече съществува запис, следното UPDATE
израз (someothervalue = 3
) се изпълнява.
Това се поддържа във всички версии на MySQL. За повече информация вижте страницата Справочно ръководство на MySQL за INSERT ... ON DUPLICATE KEY UPDATE