SELECT orders.status, orders.created_at FROM `orders` ORDER BY status='new' DESC, status='processing' DESC, CASE WHEN status IN ('new', 'processing') THEN created_at END ASC, CASE WHEN status NOT IN ('new', 'processing') THEN created_at END DESC