Много разработчици все още изпълняват заявка, за да проверят дали поле присъства в таблицата и след това изпълняват заявка за вмъкване или актуализиране според резултата от първата заявка. Опитайте да използвате синтаксиса ON DUPLICATE KEY, това е много по-бързо и по-добре след това изпълнява 2 заявки. Повече информация можете да намерите тук
ако искате да запазите същата стойност за c, можете да направите актуализация със същата стойност
разликата между 'замени' и 'при дублиран ключ':
ако таблицата ви няма първичен ключ или уникален ключ, замяната няма никакъв смисъл.
Можете също да използвате VALUES
функция, за да избегнете необходимостта да посочвате действителните стойности два пъти. напр. вместо
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
можете да използвате
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Където VALUES(c)
ще се оцени до стойността, посочена по-рано (6).