sql >> Database teknologi >  >> RDS >> Mysql

MySQL BESTIL EFTER FELT med %

Dette burde give dig mest kontrol over 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

Dette skyldes, at du kan sende alle ikke-matchende værdier til den position, du ønsker (i dette tilfælde til sidst). field() funktion returnerer 0 for ikke-matchende værdier og vil placere dem øverst i resultatsættet selv før dem, der starter med A .

Derudover kan du også bestille efter positions.colleague_position_id som jeg gjorde i eksemplet, så for mange positions.colleague_position_id der starter med det samme bogstav, vil de stadig være i orden.



  1. Indsæt INTO MySQL FRA en anden tabel

  2. dårligt argument #1 til 'ipairs' (tabel forventet, blev boolesk)

  3. Opdag 10 mindre kendte funktioner i SQL Diagnostic Manager

  4. Returner kun række, hvis værdien ikke eksisterer