Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQL:Bagaimana cara menjaga urutan baris dengan DISTINCT?

yang distinct kata kuncinya adalah melakukan apa yang seharusnya dilakukan, kembalikan satu baris masing-masing dengan nilai kolom yang diberikan. Distinct tidak mengizinkan Anda menentukan yang mana baris tersebut akan dikembalikan, dan jelas dari kueri asli bahwa pemesanan seperti itu diperbolehkan (ada baris dengan id 443 yang mengikuti baris dengan id 429).

Untuk mengontrol baris apa yang akan dikembalikan, Anda perlu memformulasi ulang kueri. Solusi tipikal yang akan saya ambil adalah menggunakan group by , memilih kolom grup dan baris yang diinginkan dari setiap grup, sesuatu dengan efek

SELECT message.id, MAX(message.created_at) FROM message GROUP BY message.id;

Jika saya perlu melakukan lebih banyak, saya akan menggunakan kueri semacam ini sebagai subpilihan dalam kueri yang lebih besar, mungkin bergabung di bidang id untuk mendapatkan lebih banyak bidang dari baris pilihan, Atau mengurutkan kueri dengan cara tertentu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami Gelombang Panas Baru MySQL

  2. Menggunakan seperti wildcard dalam pernyataan yang disiapkan

  3. Perl DBI menyisipkan beberapa baris menggunakan kemampuan menyisipkan multipel asli mysql

  4. Kueri yang berjalan otomatis di mysql

  5. MySQL mengonversi string tanggal ke cap waktu Unix