Bagaimana cara saya mengurutkan tabel MySQL dengan dua kolom?
Yang saya inginkan adalah artikel diurutkan berdasarkan peringkat tertinggi terlebih dahulu, kemudian tanggal terbaru. Sebagai contoh, ini akan menjadi output sampel (# kiri adalah peringkat, lalu judul artikel, lalu tanggal artikel)
50 | Artikel ini mengguncang | 4 Februari 2009 35 | Artikel ini cukup bagus | 1 Februari 2009 5 | Artikel ini tidak terlalu panas | 25 Jan 2009
SQL relevan yang saya gunakan adalah:
ORDER BY article_rating, article_time DESC
Saya dapat mengurutkan berdasarkan satu atau yang lain, tetapi tidak keduanya.
mysql
sql-order-by
billynoah
sumber
sumber
akan mengurutkan berdasarkan article_time hanya jika ada dua artikel dengan peringkat yang sama. Dari semua yang dapat saya lihat dalam contoh Anda, inilah yang terjadi.
tapi pertimbangkan:
sumber
DESC
pada akhirnya akan mengurutkan berdasarkan kedua kolom turun. Anda harus menentukanASC
jika Anda menginginkannya sebaliknyasumber
Ini mungkin membantu seseorang yang mencari cara untuk mengurutkan tabel dengan dua kolom, tetapi secara paralel. Ini berarti menggabungkan dua jenis menggunakan fungsi penyortiran agregat. Ini sangat berguna ketika misalnya mengambil artikel menggunakan pencarian teks lengkap dan juga mengenai tanggal penerbitan artikel.
Ini hanya contoh, tetapi jika Anda menangkap idenya, Anda dapat menemukan banyak fungsi agregat untuk digunakan. Anda bahkan dapat menimbang kolom untuk memilih satu di atas detik. Fungsi saya mengambil ekstrem dari kedua jenis, sehingga baris paling dihargai ada di atas.
Maaf jika ada solusi yang lebih sederhana untuk melakukan pekerjaan ini, tetapi saya belum menemukan.
sumber
Berikut ini akan memesan data Anda tergantung pada kedua kolom dalam urutan menurun.
sumber