Что мне нужно
мне нужно сортировать псевдоним.
код Symfony
$qb->addSelect("(CASE WHEN (priority LIKE '%High%') THEN 1
WHEN (priority LIKE '%Medium%') THEN 2
ELSE 3 END) AS prioritys ");
код сортировки
priority column name of view/table.
prioritys is alias.
$qb->orderBy('priority','ASC'); //works because here im accessing column from table/view.
$qb->orderBy('prioritys','ASC'); //doesnot works.
Ошибка при использовании псевдонима
Ошибка: [Семантическая ошибка], строка 0, столбец 173 рядом с «Приоритеты ASC»: Ошибка: «Приоритеты» не определены.
Любое предложение приветствуется.
$qb->orderBy('prioritys','ASC'); // it should work, check symfony2 doc.
Что касается основных баз данных, мы можем использовать псевдоним столбца в порядке по предложению. Так что проверь свой интерфейс.
Если не поддерживается, используйте выражение CASE в порядке по выражению, как показано ниже
ORDER BY CASE WHEN priority LIKE '%High%' THEN 1 WHEN priority LIKE '%Medium%' THEN 2 ELSE 3 END
Других решений пока нет …