Если вы хотите получить значения вместе с каждой переменной, я бы реализовал это, разделив символ «&» на массив, а затем взяв часть нужных элементов:
SELECT (string_to_array('jkdfhdjfhjh&name=ijkjkjkjkjkjk&id=kdjkjkjkjkjkjjjd&class=kdfjjfjdhfjhf','&'))[2:4];
Вывод в PostgreSQL 8.4 (тип массива):
{name=ijkjkjkjkjkjk,id=kdjkjkjkjkjkjjjd,class=kdfjjfjdhfjhf}
Пример строки очень широк, поэтому вот общая форма, чтобы показать нарезку массива более четко:
SELECT ((string_to_array(input_field,'&'))[2:4];
ПРИМЕЧАНИЕ. Чтобы срезы массива работали, у вас должны быть дополнительные скобки вокруг вызова string_to_array () - иначе вы получите ошибку.