Vím, že je to stará otázka, ale měli byste být schopni zabalit výraz do závorek, abyste jej mohli vyhodnotit
SELECT *
FROM `cars`
WHERE `color` = "black"
OR `weight` = "heavy"
OR `type` = "limo"
ORDER BY ( (`color` = "black")
+ (`weight` = "heavy")
+ (`type` = "limo")
) DESC
Každý výraz v závorce se bude rovnat 1, pokud je pravda, 0, pokud je nepravda; takže součet bude počet shod.