Sé que esta es una pregunta antigua, pero debería poder envolver una expresión entre paréntesis para evaluarla
SELECT *
FROM `cars`
WHERE `color` = "black"
OR `weight` = "heavy"
OR `type` = "limo"
ORDER BY ( (`color` = "black")
+ (`weight` = "heavy")
+ (`type` = "limo")
) DESC
Cada expresión entre paréntesis será igual a 1 si es verdadera, 0 si es falsa; por lo tanto, la suma de los cuales será el número de coincidencias.