ORDER BY mengurutkan hasil kueri berdasarkan satu atau beberapa bidang. Selalu pasangkan ORDER BY dengan klausa LIMIT—tanpa klausa tersebut, mesin harus mengurutkan seluruh set hasil, yang secara signifikan menurunkan performa.
Sintaksis
SELECT [ DISTINCT ]
{ projectItem [, projectItem ]* }
FROM tableExpression
ORDER BY { orderByItem [ASC|DESC] [, orderByItem [ASC|DESC]]* }
LIMIT N
OFFSET MParameter:
| Parameter | Deskripsi |
|---|---|
orderByItem | Bidang yang digunakan untuk pengurutan. Tentukan beberapa bidang yang dipisahkan dengan koma. |
ASC | DESC | Arah pengurutan. ASC (ascending) merupakan nilai default jika arah tidak ditentukan. |
LIMIT N | Jumlah maksimum catatan yang dikembalikan. Wajib digunakan saat menggunakan ORDER BY. |
OFFSET M | Jumlah catatan yang dilewati sebelum mengembalikan hasil. Gunakan bersama LIMIT untuk pagination. |
Contoh
Contoh berikut menggunakan tabel phone dengan bidang nid, brand, price, dan size.
Urutkan berdasarkan satu bidang (ascending default)
SELECT nid, brand, price, size FROM phone ORDER BY price LIMIT 1000Mengembalikan hingga 1.000 catatan yang diurutkan berdasarkan price dari terendah ke tertinggi. Menghilangkan ASC atau DESC akan menggunakan urutan ascending secara default.
Urutkan berdasarkan satu bidang secara ascending (eksplisit)
SELECT nid, brand, price, size FROM phone ORDER BY price ASC LIMIT 1000Ekuivalen dengan contoh sebelumnya. Gunakan ASC secara eksplisit jika Anda ingin memperjelas arah pengurutan dalam kueri Anda.
Urutkan berdasarkan beberapa bidang
SELECT nid, brand, price, size FROM phone ORDER BY size DESC, price DESC LIMIT 1000Mengurutkan terlebih dahulu berdasarkan size dalam urutan descending. Ketika dua catatan memiliki nilai size yang sama, catatan tersebut diurutkan berdasarkan price dalam urutan descending. Setiap bidang berikutnya berfungsi sebagai penentu pembeda (tie-breaker) untuk bidang sebelumnya.
Lakukan pagination pada hasil yang diurutkan
SELECT nid, brand, price, size FROM phone ORDER BY price DESC LIMIT 10 OFFSET 10Mengembalikan catatan ke-11 hingga ke-20 dari hasil pengurutan berdasarkan harga secara descending. OFFSET 10 melewati 10 catatan pertama; LIMIT 10 mengembalikan 10 catatan berikutnya.
Kembalikan catatan tanpa pengurutan
SELECT nid, brand, price, size FROM phone LIMIT 10Mengembalikan 10 catatan dalam urutan yang tidak ditentukan. Gunakan ini ketika urutan tidak penting dan Anda menginginkan respons secepat mungkin.