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 ![]()
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.
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)
İş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.
İsminiz
E-Posta
Web Siteniz
Yorumunuz
Dmry.net Vital Teknoloji tarafından desteklenmektedir