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

MySQL mengurutkan berdasarkan beberapa daftar

Sejak 1 < 3 < 77 < 123 , ORDER BY id simple sederhana sudah cukup.

Namun, jika Anda ingin memesan dengan cara ini:77, 3, 123, 1 , maka Anda dapat menggunakan fungsi FIELD() :

SELECT id, name
FROM mytable 
WHERE id IN (77, 3, 123, 1) 
ORDER BY FIELD(id, 77, 3, 123, 1)

Jika kueri Anda cocok dengan lebih banyak baris daripada yang Anda cantumkan di FIELD

FIELD mengembalikan 0 ketika sebuah baris tidak cocok dengan salah satu id yang Anda daftarkan, yaitu angka yang lebih kecil dari angka yang dikembalikan untuk id yang terdaftar. Ini berarti, jika kueri Anda cocok dengan lebih banyak baris daripada yang Anda daftarkan, baris tersebut akan muncul lebih dulu. Misalnya:

SELECT id, name
FROM mytable 
WHERE id IN (77, 3, 123, 1, 400) 
ORDER BY FIELD(id, 77, 3, 123, 1)

Dalam contoh ini, baris dengan ID 400 akan muncul lebih dulu. Jika Anda ingin baris tersebut muncul terakhir, cukup balikkan daftar ID dan tambahkan DESC :

SELECT id, name
FROM mytable 
WHERE id IN (77, 3, 123, 1, 400) 
ORDER BY FIELD(id, 1, 123, 3, 77) DESC



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara kerja injeksi SQL dan bagaimana cara melindunginya?

  2. Ukuran baris kesalahan terlalu besar di mysql buat kueri tabel

  3. masukkan kontak ke dalam database tetapi tidak ingin menduplikasi kontak yang sudah ada

  4. Cara memetakan kolom MySQL JSON ke properti entitas Java menggunakan JPA dan Hibernate

  5. Mengisi daftar Dropdown Php dari database mysql