sql >> Databáze >  >> RDS >> Mysql

MySQL:Vyberte více řádků obsahujících hodnoty z jednoho sloupce

To, co máte, je tabulka vlastností. Chcete-li otestovat více vlastností najednou, musíte tabulku připojit k sobě:

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'

S náhradním id přítomný v tabulce vlastností je sporný. Zdá se, že to nic nedělá; každá vlastnost není vlastní entitou. Pokud není id je vyžadován nějakým jiným prvkem, zbavil bych se ho a vytvořil car_id, name primární klíč (složený primární klíč).



  1. MySQL:Omezte dva sloupce tak, aby jeden z nich byl vždy NULL

  2. Zlepšení efektivity indexu MySQL – sloupce ve více indexech?

  3. jak předat hodnotu null do pole cizího klíče?

  4. onCreate() z RoomDatabase.Callback() nebylo voláno po úspěšném volání .build()