Mysql
 sql >> Database >  >> RDS >> Mysql

SQL:trova le righe e ordina in base al numero di colonne corrispondenti?

So che questa è una vecchia domanda, ma dovresti essere in grado di racchiudere un'espressione tra parentesi per valutarla

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

Ogni espressione tra parentesi sarà uguale a 1 se vera, 0 se falsa; quindi la cui somma sarà il numero di partite.