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.