SQL’de limit ile belli bir adet çekilen kaydı sıralamak.
Tablomuzdan 10 adet ile sınırlı veri çekmek istediğimizi varsayalım. Bu çektiğimiz verileri belli bir kritere göre sıralamak istiyoruz. sorgumuza ORDER BY ile bir kriter eklersek, bu kriteri uyguladıktan sonra 10 adet kayıt getireceği için istediğimiz sonuç dönmeyecek. Bizim istediğimiz, 10 adet kayıt çekelim, sonra bu kayıtları sıralayalım. Bunun için aşağıdaki gibi bir sorgu yazmamız gerekiyor.
select * from (SELECT * FROM `tablo` order by id limit 10) aliastablo order by kriter
sorguyu açıklayacak olursak, SELECT * FROM `tablo` order by id limit 10 kısmı ile ilk 10 kaydı çekiyoruz, bunu aliastablo isimli bir tablo olarak isimlendiriyoruz. Böylece 10 kayıttan oluşan bir sanal tablomuz oluyor. Bu tablomuzda da ORDER BY işlemini uyguluyoruz.
Çözüm için Mesut Uğurlu’ya teşekkür ederim.