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

Bisakah Anda menambahkan pernyataan if di ORDER BY?

Nah, Anda dapat menggunakan IF fungsi di MySQL (Perhatikan penekanan pada function karena ada juga IF yang tidak terkait pernyataan )...:

ORDER BY IF(TYPE='Member', LNAME, GROUPNAME) ASC

Namun, dalam hal ini tampaknya pilihan yang lebih baik (Dari sudut pandang fleksibilitas) adalah CASE pernyataan :

ORDER BY 
    CASE `type` 
        WHEN 'Member' THEN LNAME 
        WHEN 'Group' THEN GROUPNAME
        ELSE 1 END 
    ASC

Perhatikan bahwa seluruh blok dari CASE ke END dianggap sebagai "satuan" tunggal. Hasilnya adalah apa yang Anda coba urutkan (Karenanya mengapa ASC datang setelah blok, bukan di dalamnya)...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO menyiapkan pernyataan fetch() mengembalikan hasil ganda

  2. Apa perbedaan antara menggunakan INDEX vs KEY di MySQL?

  3. Lempar kesalahan yang mencegah pembaruan tabel di pemicu MySQL

  4. Bagaimana cara mengembalikan file dump dari mysqldump?

  5. Bagaimana saya bisa Menyisipkan banyak baris ke dalam tabel MySQL dan mengembalikan ID baru?