Jeśli używasz createQueryBuilder, możesz użyć
$query->addSelect("(CASE WHEN name like 'John %' THEN 0
WHEN name like 'John%' THEN 1
WHEN name like '% John%' THEN 2
ELSE 3 END) AS HIDDEN ORD ");
$query->orderBy('ORD', 'DESC');
Pamiętaj, że musisz mieć „UKRYTE”.
Możesz również skorzystać z natywnego zapytania doktryny.