sql >> Databasteknik >  >> RDS >> Mysql

SQL :hitta rader och sortera efter antal matchande kolumner?

Jag vet att detta är en gammal fråga, men du borde kunna slå in ett uttryck inom parentes för att utvärdera det

SELECT   *           
FROM     `cars`
WHERE    `color` = "black"
   OR    `weight` = "heavy"
   OR    `type` = "limo"
ORDER BY (   (`color` = "black")
           + (`weight` = "heavy")
           + (`type` = "limo") 
         ) DESC

Varje uttryck inom parentes är lika med 1 om sant, 0 om falskt; alltså summan av vilka blir antalet matchningar.



  1. Django queryset-objekt returnerar Inget istället för 0 även om databasen har 0 lagrat som fältvärde

  2. Hur ändrar man datumstil i PostgreSQL?

  3. Hur man skapar och tar bort databaser och tabeller i MySQL

  4. Hur man hittar maximala värden i rader