Для вывода pk=5 и потом 1, 2 попробуйте сделать запрос вида:
SELECT * FROM `table` ORDER BY (`pk` = 5 ) DESC, `pk`;
Вы не указали какая БД используется, в разных системах синтаксис запроса может немного отличаться, но как правило БД позволяют подобные вычисления в выражении сортировки.