sql >> Databasteknik >  >> RDS >> Mysql

Välj den högsta lönen

  SELECT name, wage, highhours
    FROM wagetable
   WHERE name like 'Brian' OR
         name like 'Default'
ORDER BY name,
         highhours desc

Den här frågan fungerar när du frågar efter Brian , men för att det ska fungera för alla namn är Default bör lagras i din databas som börjar med ett specialtecken [email protected] , eftersom siffror och bokstäver kommer först vid sortering.

Ett annat sätt skulle vara att skapa en annan kolumn i tabellen, för vårt arguments skull, kallad priority som ska ha värdet 0 för Default och 1 för alla andra användare. Då kan du helt enkelt göra:

  SELECT name, wage, highhours
    FROM wagetable
   WHERE name like 'Brian' OR
         name like 'Default'
ORDER BY priority desc,
         highhours desc

Naturligtvis är det samma lösning, men det är ett bättre tillvägagångssätt än att förlita sig på ett specialtecken i namnet på standardvärdena.




  1. Är detta en MySQL-sorteringsbugg?

  2. använda nollor i ett mysqli-förberedt uttalande

  3. 6 funktioner för att hämta dag, månad och år från ett datum i SQL Server

  4. MySql sökrankning med kriterier