Mam przykładowo tablę, która pełni rolę licznika odwiedzin dla danego rekordu. Aby troszkę to utrudnić to ta tabela dodatkowo przetrzymuje informacje jakiego typu jest ten licznik. Oczywiście został ustawiony unikalny klucz typu id-typ. Taki licznik można inkrementować jednym zapytaniem:
INSERT INTO licznik SET id = 1, typ = 'strona_glowna', licznik = 1 ON DUPLICATE KEY UPDATE licznik = licznik + 1;
Zapytanie jest raczej proste (jeśli nie wiesz co oznacza “ON DUPLICATE KEY” odsyłam do manuala MySQL). Całość trochę się komplikuje kiedy jednym SQLem chcę wrzucić kilkanaście rekordów. W tej sytuacji nasze zapytanie zmienia formę na coś takiego:
INSERT INTO licznik (id, typ, licznik) VALUES (1, 'strona_glowna', 1), (1, 'produkt', 1), (2, 'strona_glowna', 1), (...) ON DUPLICATE KEY UPDATE licznik = licznik + VALUES(licznik)
Wpis ku pamięci.