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

MySQL:seleziona più righe contenenti valori da una colonna

Quello che hai è una tabella delle proprietà. Quando vuoi testare più proprietà contemporaneamente, devi unire la tabella a se stessa:

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'

Avere il surrogato id presente in una tabella delle proprietà è discutibile. Sembra che non stia facendo nulla; ogni proprietà non è un'entità a sé stante. A meno che l'id è richiesto da qualche altro elemento, me ne libererei e farei car_id, name la chiave primaria (una chiave primaria composta).