Найдите слово и получите слова с прогнозным поиском из строки (не полной строки) в Mysql

У меня есть дизайн таблицы SQL, как указано ниже

*-----------------------------------------
| id | title                              |
| -- | -----------------------------------|
| 1  | This is nice pen looking good      |
| 2  | This is nice pen looking elegent   |
| 3  | This is nice pen looking great     |
| 4  | This is nice pen looking best.     |
------------------------------------------

Пример запроса: Select * from table where title LIKE '%looking%'

когда я пытаюсь найти слово «ищу», используя (например, запрос) или используя (регулярные выражения), например пример запроса, я получаю полные результаты строки, упомянутые ниже

Полученные результаты

*------------------------------------
| title                              |
| -----------------------------------|
| This is nice pen looking good      |
| This is nice pen looking elegent   |
| This is nice pen looking great     |
| This is nice pen looking best.     |
-------------------------------------

Что я хочу?

Мне нужны предиктивные поисковые слова (неполная строка)

Как я могу получить нижеуказанные результаты, выполнив поиск слова (поиск) с использованием SQL.

*-------------------
| title             |
| ------------------|
| looking good      |
| looking elegent   |
| looking great     |
| looking best.     |
--------------------

Пожалуйста, предложите, как я могу написать запрос для получения этих типов результатов? Спасибо

Объясните, пожалуйста, что вы подразумеваете под словами «предиктивный поиск».

Gordon Linoff 21.12.2020 19:59

означает, что когда я пытаюсь найти слово «ищу», мне нужен результат точного совпадения слова и следующего слова искомого слова. Поисковое слово: "выглядит" результаты, которые я хочу "выглядеть хорошо", "выглядеть элегантно", "выглядеть великолепно" и т. д.

M Uzair Qadeer 21.12.2020 20:02

Интересный вопрос, но неправильный набор инструментов. Mysql — это база данных, а не инструмент текстовой аналитики. У него нет концепции слов. Очевидно, вы можете комбинировать набор строковых функций и добиться близкого прокси того, что вы хотите, в mysql, но производительность будет ужасной.

Shadow 21.12.2020 20:06
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
3
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете получить первую следующую работу, используя substring_index():

Select t.*,
       substring_index(substring_index(concat(' ', title, ' '), ' looking ', -1), ' ', 1) as next-word
from table
where title LIKE '%looking%';

Здесь db<>рабочий пример.

И я могу привести несколько случаев, когда это решение не будет работать с реальным текстом. Вы слишком упрощаете это.

Shadow 21.12.2020 23:35

Другие вопросы по теме