Özet: bu eğitimde, bir sonuç kümesinin MySQL ORDER BY deyimini kullanarak nasıl sıralanacağını öğreneceksiniz.
Sorgulamalarda aşağıdaki veritabanı kullanılacaktır.
Örnek Veritabanı
MySQL ORDER BY deyimine Giriş
Bir tablodaki verileri sorgulamak için SELECT ifadesini kullandığınızda, sonuç kümesi hiçbir sıralamaya tabi tutulmaz. Sonuç kümesini sıralamak için, ORDER BY yan tümcesini kullanmak gerekir.
ORDER BY yan tümcesi bize aşağıdaki olanakları sunar.
- Tek bir sütuna veya birden çok sütuna göre ayarlanmış bir sonucu sıralama.
- Bir sonucu farklı sütunlara göre artan veya azalan düzende sıralama.
Aşağıdaki, ORDER BY yan tümcesinin sözdizimini gösterir:
1 2 3 4 5 | SELECT sutun1, sutun2,... FROM tablo1 ORDER BY sutun1 [ASC|DESC], sutun2 [ASC|DESC],... |
ASC artan, DESC düşen anlamına gelir. Varsayılan olarak, ORDER BY ifadesi, ASC veya DESC’yi açıkça belirtmezseniz, artan sırada sıralama yapar.
ORDER BY yan tümcesini kullanma örnekleri ile pratik yapalım.
MySQL ORDER BY Örnekleri
Örnek Sorgu: Aşağıdaki sorgu, öğrenciler tablosundan öğrenci isimlerini artan sıralamada sıralar.
1 2 3 4 5 | SELECT * FROM ogrenci ORDER BY ograd |
Örnek Sorgu: Aşağıdaki sorgu, öğrenciler tablosundan öğrenci soyisimleri azalan sıralamada sıralar.
1 2 3 4 5 | SELECT * FROM ogrenci ORDER BY ogrsoyad DESC |
Örnek Sorgu: Aynı anda birden fazla şekilde sıralama yapmak da mümkündür. Aşağıdaki örnekte soyisimlere göre azalan, doğum tarihlere göre artan sıralama yapılmaktadır. (ilk değere göre azalan, ilk değerleri aynı olanları da ikinci değere göre artan olarak sıralama yapılmıştır.
1 2 3 4 5 6 7 | SELECT * FROM ogrenci ORDER BY ogrsoyad DESC, dtarih ASC |
MySQL ORDER BY kullanarak özel bir ifadeye göre sıralama yapma
ORDER BY cümlesi ayrıca bir ifadeye göre sonuç kümesini sıralamanıza izin verir.
Örnek Sorgu: Aşağıdaki sorguda öğrencileri doğum tarihlerindeki AY değerlerine göre artan, aynı AY’da doğaları ise GÜN tarihine göre azalan olarak sıralama yapılmıtır.
1 2 3 4 5 | SELECT ograd,ogrsoyad, MONTH(dtarih) AS 'AY', DAY(dtarih) AS 'GUN' FROM ogrenci ORDER BY AY DESC, GUN ASC |
Örnek Sorgu: ORDER BY diğer SELECT ifadeleri ile de kullanılabilir. Aşağıdaki örnekte iki tabloyu birleştirilmiştir. Örnekte öğrencilerin okudukları kitap sayılarına göre sıralama yapılmıştır.
1 2 3 4 5 6 7 | SELECT ograd,ogrsoyad,COUNT(kitapno) AS 'OKUDUGU_KITAP' FROM ogrenci LEFT JOIN islem ON ogrenci.ogrno=islem.ogrno GROUP BY ogrenci.ogrno ORDER BY OKUDUGU_KITAP ASC |
Özel SIRALMA MySQL ORDER BY Kullanımı (FIELD Kullanımı)
ORDER BY deyimi, FIELD() işlevini kullanarak bir sütundaki değerler için kendi özel sıralama düzeninizi tanımlamanıza olanak tanır.
Örnek Sorgu: Aşağıdaki sorguda belirtilen isim değerlerine göre özel sıralama yapar.
1 2 3 4 5 6 | SELECT * FROM ogrenci WHERE ogrno IN (2,10,5,14,34,6) ORDER BY FIELD(ogrno,2,10,5,14,34,6) |
Örnek Sorgu: Kullandığımız örnek tablolarda FIELD ile ilgili doğrudan örnek olmadığı için aşağıdaki örneği bağımsız olarak değerlendirelim.
Sipariş tablosunda sipariş süreçleri(durum), TEDARİK SÜRECİNDE, PAKETLENİYOR, KARGOYA VERİLDİ, TESLİM EDİLDİ şeklinde durumları bildirilmektedir. Bu durumlara göre sıralama yapmak için FIELD fonskiyonu kullanılması gerekir. Aşağıdaki örnekte bu değerlere göre sıralama yapılmaktadır.
1 2 3 4 5 6 7 8 | SELECT siparisno,musterino,siparis_durum FROM siparisler ORDER BY FIELD(siparis_durum,'TEDARİK SÜRECİNDE', 'PAKETLENİYOR', 'KARGOYA VERİLDİ', 'TESLİM EDİLDİ') |
Bu eğitimde, size MySQL ORDER BY deyimini kullanarak bir sonuç kümesini sıralamak için çeşitli teknikler gösterdik. Sitemizdeki diğer eğitimler için MySQL kategorisi altındaki MySQL Örnekleri ve MySQL Derslerini inceleyebilirsiniz.
1 Yorum