I inherited a mysql database that has a table with columns like this:
object_id, property, value
It holds data like this:
1,first_name,Jane
1,last_name,Doe
1,age,10
1,color,red
2,first_name,Mike
2,last_name,Smith
2,age,20
2,color,blue
3,first_name,John
3,last_name,Doe
3,age,20
3,color,red
...
Basically what I want to do is treat this table as a regular table. How would I get the id numbers (or all properties) of a person who is age 20 sorted by last and than first name? So far I have:
SELECT object_id FROM table WHERE property = 'age' AND value = '20'
union
SELECT object_id FROM table WHERE property = 'color' AND value = 'red'
But I’m not sure how to go about ordering the data.
Thanks
The difficulties of reconstituting rows in an EAV model is exactly what you are seeing.
You have to pivot the data from rows to columns to get to your “objects” and then query against it.
Typically a pivot can be done with:
Then: