Знам, че това е стар въпрос, но трябва да можете да увиете израз в скоби, за да го оцените
SELECT *
FROM `cars`
WHERE `color` = "black"
OR `weight` = "heavy"
OR `type` = "limo"
ORDER BY ( (`color` = "black")
+ (`weight` = "heavy")
+ (`type` = "limo")
) DESC
Всеки израз в скоби ще бъде равен на 1, ако е вярно, 0, ако е false; по този начин чийто сбор ще бъде броят на съвпаденията.