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.