これは古い質問ですが、式を括弧で囲んで評価できるはずです
SELECT *
FROM `cars`
WHERE `color` = "black"
OR `weight` = "heavy"
OR `type` = "limo"
ORDER BY ( (`color` = "black")
+ (`weight` = "heavy")
+ (`type` = "limo")
) DESC
括弧内の各式は、trueの場合は1、falseの場合は0になります。したがって、その合計が一致数になります。