sql >> Database >  >> RDS >> Mysql

MySQL BESTELLEN PER VELD met %

Dit zou je er de meeste controle over moeten geven:

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

Dit komt omdat u alle niet-overeenkomende waarden naar de gewenste positie kunt sturen (in dit geval aan het einde). Het field() functie retourneert 0 voor niet-overeenkomende waarden en plaatst ze bovenaan de resultatenset, zelfs vóór de waarden die beginnen met A .

Daarnaast kunt u ook bestellen via positions.colleague_position_id zoals ik deed in het voorbeeld, zodat voor veel positions.colleague_position_id die met dezelfde letter beginnen, staan ​​ze nog steeds op volgorde.



  1. Hoe oude plsql terug te zetten?

  2. Lijst met alle triggers in Oracle Database

  3. Kan MySQL Nested Select een lijst met resultaten retourneren

  4. Arabische tekstuitvoer php mysql utf-8 conversieprobleem