Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL ORDER BY FIELD z %

To powinno dać ci największą kontrolę nad tym:

order by
  case left(positions.colleague_position_id, 1)
    when 'A' then 1
    when 'F' then 2
    when 'T' then 3
    when 'S' then 4
    when 'C' then 5
    else 6
  end, positions.colleague_position_id

Dzieje się tak, ponieważ możesz wysłać wszystkie niepasujące wartości na żądaną pozycję (w tym przypadku na końcu). field() funkcja zwróci 0 dla niepasujących wartości i umieści je na górze zestawu wyników, nawet przed tymi zaczynającymi się od A .

Dodatkowo możesz również zamawiać według positions.colleague_position_id tak jak zrobiłem w przykładzie, aby dla wielu positions.colleague_position_id które zaczynają się na tę samą literę, nadal będą w porządku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zdarzenie MySQL Instrukcja If END IF Error

  2. GROUP_CONCAT z limitem

  3. Tunel Node.js ssh2 utrzymuje się przy życiu i wykonuje zapytania mysql

  4. Web2py – migracja z SQLite do MySQL

  5. Jak wyświetlić wiersze w paczkach po trzy w MySQL