sql >> Database >  >> RDS >> Mysql

SQL :rijen zoeken en sorteren op aantal overeenkomende kolommen?

Ik weet dat dit een oude vraag is, maar je zou een uitdrukking tussen haakjes moeten kunnen plaatsen om het te evalueren

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

Elke uitdrukking tussen haakjes is gelijk aan 1 als waar, 0 als onwaar; dus de som hiervan is het aantal overeenkomsten.



  1. Hibernate eqOrIsNull() gebruiken

  2. MySQL krijgt rijpositie in ORDER BY

  3. MariaDB LTRIM() vs LTRIM_ORACLE():wat is het verschil?

  4. Postgres - Functie om het snijpunt van 2 ARRAY's te retourneren?