Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL ORDER BY FIELD mit %

Dies sollte Ihnen die größte Kontrolle darüber geben:

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

Denn Sie können alle nicht übereinstimmenden Werte an die gewünschte Position (in diesem Fall am Ende) senden. Das field() Funktion gibt 0 zurück für nicht übereinstimmende Werte und setzt sie an den Anfang der Ergebnismenge, noch vor diejenigen, die mit A beginnen .

Zusätzlich können Sie auch nach positions.colleague_position_id bestellen wie ich es im Beispiel getan habe, also für viele positions.colleague_position_id die mit dem gleichen Buchstaben beginnen, sind trotzdem in der Reihenfolge.