Упорядочить результат sql по первому вхождению строки - PullRequest
0 голосов
/ 28 октября 2019

С учетом следующего оператора sql:

select * from mytable where mycolumn like '%xyz%'

и следующего результата

aaxyz
bbbxyz
xyzcc
dxyzxd
eeeeexyz

Как мне потребовать, чтобы оператор sql упорядочил результат в ранге первое вхождение требуемой строки , т.е. xyzcc first и eeeeexyz last?

1 Ответ

1 голос
/ 28 октября 2019

С помощью функции position(), которая возвращает индекс первого вхождения подстроки в строке:

select * from mytable 
where mycolumn like '%xyz%'
order by position('xyz' in mycolumn)

См. Демонстрационную версию . Результаты:

| mycolumn |
| -------- |
| xyzcc    |
| dxyzxd   |
| aaxyz    |
| bbbxyz   |
| eeeeexyz |
...