Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Wählen Sie mehrere Zeilen aus, die Werte aus einer Spalte enthalten

Was Sie haben, ist eine Eigenschaftstabelle. Wenn Sie mehrere Eigenschaften gleichzeitig testen möchten, müssen Sie die Tabelle mit sich selbst verbinden:

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'

Mit dem Ersatz id in einer Eigenschaftstabelle vorhanden ist, ist fraglich. Es scheint nichts zu tun; Jede Eigenschaft ist keine eigene Entität. Es sei denn, die id von einem anderen Element benötigt wird, würde ich es loswerden und car_id, name erstellen der Primärschlüssel (ein zusammengesetzter Primärschlüssel).