MySql'de limit ve rand Kullanımı - mehmetduran.com
Öncelikle rand fonksiyonunu açıklayım. rand fonksiyonu bilindiği gibi veritabanında ki bilgilerden rasgele bilgi alabilmemizi sağlıyor. Kısacası rasgele kayıt getiriyor. Ayrıca bu fonksiyonu limit ile beraber kullanarak rasgele çekeceğimiz verilerin sayısını belirleyebiliriz. Örnek verecek olursak:
"select * from tablo_adı order by rand() limit 8" // rasgele olarak 8 kayıt getirecek komut.
Yani limit fonksiyonu da veritabanından kaç adet veri çekeceğimizi belirlediğimiz bir fonksiyon. Access ve Sql Server'da kaç adet veri çekeceğimizi top fonksiyonu ile yapıyoruz. Ancak bana göre top fonksiyonu MySql'deki limit kadar kullanışlı değil. Çünkü limit fonksiyonunun kullanım şekilleri var ve bu yollarla birçok işlemi çok daha rahat bir biçimde yapabiliyoruz. Mesela sitemde sayfalama işlemlerini limit fonksiyonu ile yaptım. Örnek verecek olursak;
"select * from tablo_adı limit 8" // 0. satırdan itibaren 8 veriyi getirecek komut.
"select * from tablo_adı limit 2,8" // bu komut ise 2.satırdan(veriden) itibaren ilk 8 veriyi getirecektir.
Görüldüğü gibi limit fonksiyonu ile belirli sayıdaki ve veritabanında herhangi bir sırada ki verileri böyle çekiyoruz. Sayfalama işlemi de tamamen buna dayanıyor. Sayfalama işleminde çekeceğimiz data sayısı her sayfa da aynı olacak şekilde ayarlanır sadece kaçıncı satırdan itibaren seçileceği önemlidir. Bu satırın hangi satır olacağını ise kendimiz session veya querystring yardımı ile belirleyip limit fonksiyonu ile basit şekilde sayfalama işlemi yapabiliriz. Ben sitemde bu işlemde ki değeri querystring ile page değeriyle elde ediyorum.
Önümüzdeki günlerde sayfalama işlemi ile ilgili daha ayrıntılı bir makale yazacağım. Oradan sayfalama ile ilgili tüm detayları görebilirsiniz.
Mehmet Duran 22 Ağustos Cuma 2008 0 22964 4,2
Oluşturulma : 0,3569 sn.