Сортировать еще можно введением отдельного поля с числовым представлением типа, или сделать поле типом ENUM (хотя не уверен, хранится то оно в виде числа, а как сортируется не знаю), или использовать конструкцию CASE.
Но ограничения по типам, тут без UNION точно не обойтись, или делать три отдельных запроса.