You have a property table. If you want to test several properties at once, you need to join the table:
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'
The presence of the surrogate id present in the property table is doubtful. He seems to be doing nothing; each property is not property. If id not required by any other element, I would get rid of it and make car_id, name primary key (composite primary key).
source share