Задать вопрос
@Leopandro
Разработчик CRM/ERP систем

Как решить проблему с таким запросом?

Есть у меня поле(одно), куда вводится поисковый текст(имя фамилия и отчество), и есть три столбца в таблице, имя, фамилия, отчество.
При поиске имени иван выведутся Иваны, Ивановы, Ивановичи.
А при поиске Алексей Иванов выведутся все Алексеи и все Ивановы и Ивановичи, как сделать так чтобы искало только те строки в которых есть оба значения Алексей и Иванов. Сложность в том что мы можем получить поисковую строку Иванович Алексей, Алексей Иванов, Иванов Петрович - т.е. порядок может быть разным.
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Leopandro Автор вопроса
Разработчик CRM/ERP систем
Нашел решения сам(примерный запрос):
select id,pr.name,pr.surname,pr.patronymic from proposals pr
where CONCAT_WS(' ', pr.name, pr.surname, pr.patronymic) LIKE  '%Ив%Андре%'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Раздирать запрос на слова и самостоятельно определять по морфологическим признакам или словарю, где имя, а где отчество.
Ответ написан
Комментировать
streetflush
@streetflush
Разбить на слова и искать каждое слово в каждом столбце через OR
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы