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.
Çok faydalı bir bilgi olmuş teşekkür ederim eline sağlık.
hiçbir fikrim yok, her iki şekilde de kullanıp denemen lazım. ancak yukarıdaki daha az olacaktır bence. çünkü kullanacağın satır sayısı azalacaktır bu yolla
peki sorguyu bu şekilde yaptığımızda kazanacağımız bellek miktarı ne kadardır acaba?