To by vám mělo poskytnout největší kontrolu:
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
Všechny neshodné hodnoty totiž můžete poslat na požadovanou pozici (v tomto případě na konci). field()
funkce vrátí 0
pro neshodné hodnoty a umístí je na začátek sady výsledků ještě před ty, které začínají A
.
Kromě toho můžete také objednávat podle positions.colleague_position_id
jako jsem to udělal v příkladu, takže pro mnoho positions.colleague_position_id
které začínají stejným písmenem, budou stále v pořadí.