Eu sei que esta é uma pergunta antiga, mas você deve conseguir envolver uma expressão entre parênteses para avaliá-la
SELECT *
FROM `cars`
WHERE `color` = "black"
OR `weight` = "heavy"
OR `type` = "limo"
ORDER BY ( (`color` = "black")
+ (`weight` = "heavy")
+ (`type` = "limo")
) DESC
Cada expressão entre parênteses será igual a 1 se verdadeiro, 0 se falso; portanto, cuja soma será o número de correspondências.