sql >> Base de Datos >  >> RDS >> Mysql

MySQL ORDEN POR CAMPO con %

Esto debería darle el mayor control sobre él:

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

Esto se debe a que puede enviar todos los valores que no coincidan a la posición que desee (en este caso, al final). El field() la función devolverá 0 para valores que no coinciden y los colocará en la parte superior del conjunto de resultados incluso antes de los que comienzan con A .

Además, también puede ordenar por positions.colleague_position_id como hice en el ejemplo, de modo que para muchos positions.colleague_position_id que comiencen con la misma letra seguirán estando en orden.