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

MySQL :sélectionnez plusieurs lignes contenant des valeurs d'une colonne

Ce que vous avez est une table de propriétés. Lorsque vous souhaitez tester plusieurs propriétés à la fois, vous devez joindre la table à elle-même :

SELECT c0.car_id
FROM table_cars AS c0
JOIN table_cars AS c1 ON c1.car_id=c0.car_id
JOIN table_cars AS c2 ON c2.car_id=c1.car_id
WHERE c0.name='MAKE' AND c0.value='FORD'
AND c1.name='COLOR' AND c1.value='SILVER'
AND c2.name='TOPSPEED' AND c2.value='200KM/H'

Avoir le substitut id présent dans une table de propriétés est discutable. Il ne semble rien faire; chaque propriété n'est pas une entité en soi. Sauf si le id est requis par un autre élément, je m'en débarrasserais et ferais car_id, name la clé primaire (une clé primaire composite).