Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:selecione várias linhas contendo valores de uma coluna


O que você tem é uma tabela de propriedades. Quando você deseja testar várias propriedades de uma só vez, você precisa unir a tabela a si mesma:
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'

Ter o id substituto presente em uma tabela de propriedades é questionável. Não parece estar fazendo nada; cada propriedade não é uma entidade própria. A menos que o id é exigido por algum outro elemento, eu me livraria dele e faria car_id, name a chave primária (uma chave primária composta).