Jeśli chcesz to zrobić w jednej instrukcji (brzmi tak, jak chcesz), polecam użycie INSERT ... ON DUPLICATE KEY UPDATE
składnia w następujący sposób:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
Początkowy INSERT
Instrukcja zostanie wykonana, jeśli nie istnieje żaden rekord z określoną wartością klucza (kluczem podstawowym lub unikatową). Jeśli rekord już istnieje, następująca UPDATE
instrukcja (someothervalue = 3
) jest wykonywany.
Jest to obsługiwane we wszystkich wersjach MySQL. Aby uzyskać więcej informacji, zobacz stronę MySQL Reference Manual dla INSERT ... ON DUPLICATE KEY UPDATE