sql >> Databasteknik >  >> RDS >> Mysql

MySQL BESTÄLLNING EFTER FÄLT med %

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.



  1. PHP - Använder PDO med IN-klausul array

  2. En expertguide till Slony-replikering för PostgreSQL

  3. ORA-12154:TNS:kunde inte lösa den angivna anslutningsidentifieraren

  4. Hur kan jag infoga vanliga data i en tillfällig tabell från olika scheman?