MySQL ile Insert On Duplicate Key Update

MySQL ile INSERT ON DUPLICATE KEY UPDATE komutunu kullanmak nasıl bir şey? Bu komutu bilmeyenlerin aklında hemen soru işaretleri oluşmuştur. Emin olun harika bir şey 🙂 Hatta bu zamana kadar size neden açıklamamışım, şaşırdım doğrusu 🙂

MySQL ile INSERT ON DUPLICATE KEY UPDATE

Bu komutu hem veri girişi hem de aynı tabloda güncelleme yapmak istediğimizde kullanıyoruz. Buna en güzel örnek ise günlere göre tutulan istatistikler oluyor.

Küçük bir örnek verelim hemen. Web sitemde aranan kelimeleri günlere göre kaydetmek istiyorum. Kolonlarım ise: kelime, arama_sayi, en_son_arama, sonuc_sayi şeklinde. Amacım basit. Aranan kelimeyi alıyorum ve bu kelime ile elde edilen sonuç sayısı ile birlikte tabloya ekliyorum. Buraya kadar basit. Bundan sonra aynı kelime her arandığında, arama_sayi kolonundaki rakamı +1 yükseltmek istiyorum. Bu işlem için 2 farklı sorguya gerek yok.

[SQL]INSERT INTO aranan_kelimeler (kelime, arama_sayi, en_son_arama, sonuc_sayi) VALUES (‘$aranan’, 1, NOW(), ‘$sonucsayi’) ON DUPLICATE KEY UPDATE arama_sayi = (arama_sayi+1)[/SQL]

İşte bu kadar. Tek sorgu ile, 2 farklı sorguda yapılabilecek kayıt ya da güncelleme işlemini tamamladım.

Tabi unutmadan 🙂 kelime + en_son_arama ; UNIQUE türünde olmalıdır.