Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL:Zeilen finden und nach Anzahl übereinstimmender Spalten sortieren?

Ich weiß, dass dies eine alte Frage ist, aber Sie sollten in der Lage sein, einen Ausdruck in Klammern zu setzen, um ihn auszuwerten

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

Jeder Ausdruck in Klammern ist gleich 1, wenn wahr, 0, wenn falsch; somit ergibt die Summe davon die Anzahl der Übereinstimmungen.