Как отсортировать таблицу начиная с определенного значения?

Подскажите, как правильно отсортировать такую таблицу?

Нужно вывести сначала то, где есть |2|, а после все остальные:

id - data
1  - |1|2|3|
2  - |3|
3  - |2|
4  - |1|3|

Должно быть такое:

1  - |1|2|3|
3  - |2|
2  - |3|
4  - |1|3|

Нужно под CodeIgniter.

Пытался так делать $builder->orderBy('data="|2|"', 'ASC');, но не работает.


Ответы (1 шт):

Автор решения: Sergey Mironov

Нашел решение.

$builder->orderBy("CASE WHEN data = '|2|' THEN 0 
  WHEN data LIKE '|2|%' THEN 1 
  WHEN data LIKE '%|2|%' THEN 2 
  WHEN data LIKE '%|2|' THEN 3 
  ELSE 4
END, data", 'ASC');
→ Ссылка