nasıl aratacağımı bile bilmediğim için çözemedim. en azından keyword verirseniz o da işimi görür.

order by RAND() limit 4 diyip listeden rastgele değerler seçtiriyorum. (veritabanından seçtiği değerler 1 ile 99 arasında integer alan kolonlar)

burada şunu yapmak istiyorum: bu dört tane seçim arasında aşağıdaki aralıklarda 2den fazla değer olmasın:
1-9 = en fazla 2 tanesi bu aralıktan gelebilir
10-19 = en fazla 2 tanesi bu aralıktan gelebilir
20-29 = en fazla 2 tanesi bu aralıktan gelebilir.

bu random'ı bu şekilde böldürebiliyor muyum?

 

hangi dili kullanıyorsunuz?

işimdeyim gücümdeyim

şu mantık karmaşık ama istediğin olur:


select * from
(select * from table where col1>= 1 and col1 <10 order by RAND() limit rand()*3
union all
select * from table where col1>= 10 and col1 <20 order by RAND() limit rand()*3
union all
select * from table where col1>= 20 and col1 <30 order by RAND() limit rand()*3
union all
select * from table where col1>= 30 order by RAND()
) x limit 4

mysql için systax doğru olmayabilir, limitlerdeki rand'leri integer'a çevirmek gerekebilir.

altinci nesil caylak
1

mobil görünümden çık