You can do something like this:
SELECT t1.post_id, t1.meta_value AS name, t2.meta_value AS season, t3.meta_value AS episode FROM ( SELECT * FROM the_table WHERE meta_key = 'name' ) t1 INNER JOIN ( SELECT * FROM the_table WHERE meta_key = 'season' ) t2 ON t1.post_id = t2.post_id INNER JOIN ( SELECT * FROM the_table WHERE meta_key = 'episode' ) t3 ON t1.post_id = t3.post_id
This will give you the result:
| post_id | name | season | episode | ------------------------------------------- | 1 | Smallville | 1 | 1 | | 2 | Smallville | 1 | 2 |
In this form, it is much easier for any operations.
You need to add:
WHERE name = 'Smallville' ORDER BY season, episode
source share