Есть сущности, у каждой есть атрибуты vip и rating. Сейчас в vip хранится timestamp метка времени, до которого сущность имеет VIP статус, в rating хранятся голоса.
При выводе списка основным сортировочным атрибутом является rating, но, поля, где vip != 0 нужно вывести первыми, также сортируя по rating.
Вопрос: можно ли решить эту задачу, не разбивая vip на 2 атрибута с флагом и временем окончания?
выберите таблицу сначала ту где vip != 0 и отсортируйте ее по rating
а потом через UNION добавьте вторую выборку где vip = 0 и тоже отсортируйте ее по rating
будет что то вроде
SELECT vip,rating FROM your_table WHERE vip != 0 ORDER BY raring
UNION
SELECT vip,rating FROM your_table WHERE vip = 0 ORDER BY raring