veritabanımda atıyorum 100 adet kayıt var.
demek istiyorum ki: bu 100 kaydın 10 tanesini rastgele bir şekilde getir onları kullanayım.
nasıl yapabilirim?
google'da mysql random yazdım 80 tane falan sonuç çıktı.
jfgi
SELECT col FROM tablo ORDER BY RAND() LIMIT 1;
SELECT col FROM tablo ORDER BY RAND() LIMIT 10;
eğer veri zaman ile artacak ise işi 3 sorgu ile çözmen lazım, min id'yi alacan, max id'yi alacan max_id - 10 diyip, aradan bir tanesini random seçecen (php ile falan olabilir), sonra select * from where id>=$rand_id limit 10 diyecen, eğer sonuç gelmezse <= diyip tekrar alacaksın. verin büyümeyecek ise sorun yok rand() işini görür tek başına.
tabii bu dediğim id'lerin int olması durumunda işe yarıyor, string yada hash falan ise rand'a devam.
100 kayıt var dedin diye rand() komutunu önerdim.
satır sayısı 10k ve üzeri ise rand() komutu yavaşlatacaktır. bu durumlarda php ile 1-10k arasında rastgele sayılar üretip veritabanından sadece o sayıları çekmen gerekecek performans için.