Jag vet att detta är en gammal fråga, men du borde kunna slå in ett uttryck inom parentes för att utvärdera det
SELECT *
FROM `cars`
WHERE `color` = "black"
OR `weight` = "heavy"
OR `type` = "limo"
ORDER BY ( (`color` = "black")
+ (`weight` = "heavy")
+ (`type` = "limo")
) DESC
Varje uttryck inom parentes är lika med 1 om sant, 0 om falskt; alltså summan av vilka blir antalet matchningar.