Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL :rechercher des lignes et trier en fonction du nombre de colonnes correspondantes ?

Je sais que c'est une vieille question, mais vous devriez pouvoir mettre une expression entre parenthèses pour l'évaluer

SELECT   *           
FROM     `cars`
WHERE    `color` = "black"
   OR    `weight` = "heavy"
   OR    `type` = "limo"
ORDER BY (   (`color` = "black")
           + (`weight` = "heavy")
           + (`type` = "limo") 
         ) DESC

Chaque expression entre parenthèses sera égale à 1 si vrai, 0 si faux ; donc dont la somme sera le nombre de correspondances.