Detta bör ge dig mest kontroll över det:
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
Detta eftersom du kan skicka alla icke-matchande värden till den position du vill ha (i det här fallet i slutet). field()
funktionen returnerar 0
för icke-matchande värden och kommer att placera dem överst i resultatuppsättningen även före de som börjar med A
.
Dessutom kan du också beställa efter positions.colleague_position_id
som jag gjorde i exemplet, så att för många positions.colleague_position_id
som börjar med samma bokstav kommer de fortfarande att vara i ordning.