sql >> Database teknologi >  >> RDS >> Mysql

MySQL kæmper med forespørgsler i et til mange forhold, der matcher flere betingelser

Dette er en relationel opdeling problem.

Den måde, du foreslår med COUNT er nok den nemmeste i MySQL

SELECT product_id
FROM product_attributes pa
WHERE (attribute='size' and value='medium')
OR (attribute='colour' and value='blue')
GROUP BY product_id
HAVING COUNT(DISTINCT CONCAT(attribute,value) ) = 2

Der er en anden tilgang med dobbelt NOT EXISTS i den linkede artikel, men da MySQL ikke understøtter CTE'er, ville det være ret besværligt.



  1. Installation af Oracle Fusion Middleware / WebLogic Server 11g

  2. Adgang til MySql-database fra PHP-fil på lokal vært

  3. Brug af xpath til at udtrække data fra en XML-kolonne i postgres

  4. Jeg vil lave INSERT uden registrering i DB