sql >> Base de Datos >  >> RDS >> Mysql

SQL:¿busca filas y ordena según el número de columnas coincidentes?

Sé que esta es una pregunta antigua, pero debería poder envolver una expresión entre paréntesis para evaluarla

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

Cada expresión entre paréntesis será igual a 1 si es verdadera, 0 si es falsa; por lo tanto, la suma de los cuales será el número de coincidencias.