Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL ORDER POR CAMPO com %


Isso deve dar a você o maior controle sobre ele:
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

Isso ocorre porque você pode enviar todos os valores não correspondentes para a posição desejada (neste caso, no final). O field() função retornará 0 para valores não correspondentes e os colocará no topo do conjunto de resultados antes mesmo daqueles que começam com A .

Além disso, você também pode fazer pedidos por positions.colleague_position_id como fiz no exemplo, de modo que para muitos positions.colleague_position_id que começam com a mesma letra eles ainda estarão em ordem.