Я согласен с тем, что ответ Ника, вероятно, лучший, но если вы действительно хотите сохранить формат ключа / значения, вы можете достичь желаемого с помощью представления (это в синтаксисе PostgreSQL, потому что это то, чтоЯ знаком с, но концепция MySQL та же самая):
CREATE OR REPLACE VIEW myview AS
SELECT keyID,
MAX(CASE WHEN Param = 'Location' THEN Value END) AS Location,
MAX(CASE WHEN Param = 'Cost' THEN Value END) AS Cost,
....
FROM mytable;
Производительность здесь, вероятно, будет неутешительной, но если ваши запросы не часты, это может выполнить работу.