В идеале вынести тип адреса в отдельное поле, но если сейчас нужно организовать по-быстрому отчет, можно использовать мощь postgresql (ее ведь используете?)
Address.order("SUBSTRING(name, 'ул\s?(.*)') ASC")
Этот способ при больших объемах данных будет работать медленно. Рекомендовал бы пересмотреть такой подход к сохранению адресов. :)
Если что-то работает как надо, то стоит ли это менять? mysqli и PDO хорошо справляются со своей задачей (не стоит забывать, что у mysqli есть и оо-интерфейс).