Pokud to chcete udělat v jediném příkazu (zní to jako to, co chcete), doporučil bych použít INSERT ... ON DUPLICATE KEY UPDATE
syntaxe takto:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
Počáteční INSERT
příkaz se provede, pokud neexistuje žádný záznam se zadanou hodnotou klíče (buď primární nebo jedinečný). Pokud již záznam existuje, následující UPDATE
příkaz (someothervalue = 3
) se provede.
To je podporováno ve všech verzích MySQL. Další informace naleznete na stránce Referenční příručka MySQL pro INSERT ... ON DUPLICATE KEY UPDATE