Как правильно составить запрос MySQL

KW
На сайте с 04.12.2013
Offline
157
356

Нужно сделать выборку предложений из базы данных MySQL, по совпадению текста  LIKE '% text %'

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

Сделать запрос таким LIKE '% text%' где нет пробела после текста - тоже не подходит, так как подтягиваются другие слова, например Grammar

Как правильно составить запрос, чтобы выбирало text с пробелом после него, и со всеми возможными знаками?

C
На сайте с 04.02.2005
Offline
277
#1
Покажите сам запрос
Иначе непонятно
Ищите 'text', а говорите про Grammar
E
На сайте с 01.10.2017
Offline
100
#2
Chukcha #:
Иначе непонятно
Ищите 'text', а говорите про Grammar

Все понятно. Без пробелов будет находить все вхождения, т.е. не только text, но и textual, не только Gram, но и Grammar.

KraftWerk :
Как правильно составить запрос

В общем LIKE не предназначен для этого. Используйте полнотекстовый поиск: https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html

Домены на продажу: https://p20.ru/collection/domains-for-sale
pegs
На сайте с 07.06.2007
Offline
658
#3
Используйте оператор сравнения REGEXP с соответствующим регулярным выражением. Но поиск будет идти перебором всех строк, поэтому если  таблица большая это будет не очень быстро. Хотя LIKE '%text%' тоже не использует индексы и работает перебором.
«Палата номер 6» ищет своего Главврача: https://www.palata6.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий