По-хорошему - вообще не давать пользователям никаких глобальных прав, в том числе и на создание баз данных.
Базы данных создаются отдельным инструментом, при создании - к ней выдаются нужному пользователю нужные права доступа. Практически все панели управления хостингом умеют так делать.
Проще всего на стороне БД отфильтровать, особенно если выставить индекс на поле, по которому происходит фильтрация. Индексы помогают не считывать с диска всю таблицу, а только нужные строки, попадаемые под критерий, а операция считывания с диска одна из самых тяжёлых со стороны сервера.
Я загружаемые юзерами файлы обычно называю по sha1 от содержимого, заодно и дедупликация получается в том случае, если два раза будет загружен один и тот же файл.
Причём хэш от файла просчитываю перед загрузкой ещё и на клиенте, чтобы можно было отловить дубликат, не загружая сам файл (на сервере обязательно хэш перепроверить, ибо клиент может намеренно солгать).
Использовать там поле, обозначающее порядок элементов. И при выводе сортировать по этому полю, при перемене мест - менять значения этого поля в строках местами.
Если из первого хэша получить второй никак нельзя, то никак не перенести. Разве что сделать поле вроде old_password и там хранить старый формат пароля, а при входе проверять, если у данного юзера есть старый пароль и он совпадает, то генерировать на его основе новый хэш. В итоге со временем хэши пользователей будут пересчитаны.