Category Archives: SQL

Videolu ve yazılı SQL Dersleri

MySQL 30 Günden Eski İçerikleri Silmek

3 yorum

30 günden eski içerikleri silmek büyük projelerde işimize yarayacaktır. Ben genelde öyle yapıyorum, çok önemli içerik depolanmıyorsa anlık olarak kullanıcıyı ilgilendiren içerikler ise belli aralıklarla bu sorguyu çalıştırıp 30 günden eski içerikleri veritabanınızda boşu boşuna yer kaplamaması için silebilirsiniz.

DELETE FROM tablo_adiniz
WHERE tarih_alani_adiniz < DATE_SUB(NOW(), INTERVAL 1 MONTH);

Kırmızı yere tablo adınızı, yeşil yere de tabloda tarihi tuttuğunuz alanın adını yazıp çalıştırmanız yeterli sorguyu.

İsterseniz 10 günlük, 15 günlük.. x günlük şeklinde de içerik silebilirsiniz.
O zamanda INTERVAL 1 MONTH yerine INTERVAL x DAY olacak.

Mesela 15 günlük içeriği silelim;

DELETE FROM tablo_adiniz
WHERE tarih_alani_adiniz < DATE_SUB(NOW(), INTERVAL 15 DAY);

Güncelleme: MySQL Event Scheduler (olay zamanlayıcısı) ile bu işlemi otomatikte yaptırabiliriz. Şu sorguyu çalıştırmamız yeterli;

SET GLOBAL event_scheduler = ON;

DELIMITER $$

CREATE EVENT clearLog
ON SCHEDULE EVERY ‘1’ MONTH
STARTS ‘2011-05-01 00:00:00′
DO
BEGIN
DELETE FROM tablo_adiniz WHERE tarih_alani_adiniz < DATE_SUB(NOW(), INTERVAL 1 MONTH);
END$$

DELIMITER ;
Konuyu görmek için tıklayın

MySQL LENGTH() fonksiyonu

3 yorum

Açıklama
Belirlenen kolonun karakter uzunluğunu döndürür.

Örnek Kullanımı
Örneğin test tablosunda ad kolonu karakter uzunluklarını yazdıralım;

SELECT *, LENGTH(ad) as ad_uzunluk FROM `test`

şimdide bu uzunlukları 3’e eşit olanları listeleyelim sadece;

SELECT *, LENGTH(ad) as ad_uzunluk FROM `test`
HAVING ad_uzunluk = 3

Konuyu görmek için tıklayın