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

Bagaimana cara menentukan pesanan khusus dalam klausa ORDER BY?

Gunakan fungsi FIELD:-

SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 1, 67, 78, 57)

EDIT - Jika tidak ditemukan itu akan mengembalikan 0, jadi jika Anda ingin 2 nilai diurutkan terlebih dahulu maka mungkin hanya 2 itu dalam fungsi tetapi dibalik dan urutkan turun.

SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 67, 1) DESC

Ini akan menempatkan kategori 1 terlebih dahulu, kategori 67 setelahnya, diikuti oleh yang lainnya



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan umum:tidak dapat memanggil konstruktor kelas'

  2. Tetapkan hasil variabel, dari kueri

  3. Bagaimana cara membuat tautan permanen yang didorong oleh basis data?

  4. MySQL - Menggabungkan INSERT, VALUES, dan SELECT?

  5. mysql JOIN, bagaimana ini ditafsirkan?