MySQL как поиск с непоследовательными словами в столбце - PullRequest
0 голосов
/ 03 октября 2018

У меня есть таблица под названием «products», где у меня есть названия продуктов, такие как «Iphone5 с данными 1 ГБ», «Iphone5 с данными 10 ГБ» и т. Д. И т. Д. ...

Когда пользователь используетокно поиска для поиска этой продукции я делаю запрос, подобный следующему ...

 select *
 from products
 where product_name like '%USER_SEARCH_KEY%'
 limit 5;

теперь, когда я ищу 'iphone5 с', я получаю строки, в которых есть слово 'iphone5 с'.но когда я ищу 'iphone5 1gb', я не получаю никаких записей ... мне нужно было ввести 'iphone5 с 1gb', чтобы получить этот результат.Есть ли способ получить запись о наборе результатов при поиске по ключевому слову iphone5 1 ГБ?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

У вас есть 3 способа решения этой задачи:

  1. Вы можете создать полнотекстовый индекс и искать по нему
  2. Выможет разбить поисковый запрос пользователя на слова и сделать запрос к базе данных следующим образом:

    SELECT * FROM products WHERE product_name LIKE '%iphone5%1gb%' limit 5

  3. Вы можете использовать поисковую систему,например, Elastic Search.Я думаю, что этот способ лучше

0 голосов
/ 03 октября 2018

вы можете использовать только 1 ГБ в строке поиска

 select * from t1 where  item like '%1GB%'

в противном случае вам придется использовать полнотекстовый поиск, но для его использования необходимо реализовать это в вашей таблице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...