sql >> Database >  >> RDS >> Mysql

Voorwaardelijk sorteren in MySQL?

Je zou kunnen proberen ORDER BY (done asc, aux desc) waarbij aux wordt berekend met een CASE om prioriteit of datum te geven op basis van de waarde van done (het kan zijn dat u ze naar hetzelfde type moet casten om in dezelfde uitdrukking te passen, bijv. de datum casten naar een geschikt geheel getal voor de dag).

Bijvoorbeeld:

SELECT * FROM tab
ORDER BY done desc,
         case done
             when 0 then prio 
             else to_days(thedate)
         end desc;


  1. Waarom worden er geen sleutels gebruikt in deze EXPLAIN?

  2. MySQL TRUNCATE TABLE begrijpen door praktische voorbeelden

  3. Moet ik de strikte modus van MySQL uitschakelen?

  4. PostgreSQL hoe intervalwaarde '2 dagen' samen te voegen