Delgus
@Delgus

Сорировка по более раннему вхождению строки в запрос?

Есть такой запрос. По строке передаваемой юзером ищем что то в базе
SELECT email FROM users WHERE email ILIKE :query ORDER BY email

Получаем такой вот список по запросу "test"
SELECT email FROM users WHERE email ILIKE "%test%" ORDER BY email


aaTESTyui@yuiy.oiu
aTESTyui@yuiy.oiu
bTESTyui@yuiy.oiu
cTESTyui@yuiy.oiu
TESTaui@yuiy.oiu

А я хочу чтоб с более ранним вхождением подстроки были выше
TESTaui@yuiy.oiu
aTESTyui@yuiy.oiu
bTESTyui@yuiy.oiu
cTESTyui@yuiy.oiu
aaTESTyui@yuiy.oiu

Возможно ли сделать такое на уровне sql запроса?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
Надо сортировать по расстоянию Левенштейна (levenshtein) от выражения "test" до поля email.
Ответ написан
Комментировать
Delgus
@Delgus Автор вопроса
В Postgres есть ORDER BY POSITION()
ORDER BY POSITION('test' in email)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 12:53
1000 руб./за проект
19 апр. 2024, в 12:41
8000 руб./за проект
19 апр. 2024, в 12:05
1500 руб./в час