php мой поиск sql без "как" причина? - PullRequest
0 голосов
/ 16 сентября 2010

Я использую php и mysql ...

У меня есть приложение, в котором пользователь вводит любой текст, и я хочу найти связанные данные из базы данных, не используя причину "LIKE" в моем запросе mysql.

существует ли какой-либо возможный способ поиска этой строки в базе данных.

или любой другой подход в MySQL для этого ....

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

Ответы [ 3 ]

2 голосов
/ 16 сентября 2010

Вы также можете проверить предложение MATCH.

1 голос
/ 16 сентября 2010

Вы можете использовать REGEXP, когда пользователь вводит в запрос одно слово, которое вы указали WHERE field REGEXP '.*TEXT.*', регулярное выражение - это круто, потому что вы можете разрешить пользователю вводить регулярное выражение в поле поиска.

0 голосов
/ 16 сентября 2010

Если вы не хотите использовать LIKE и не называете причину (это хорошо для всех остальных), то вот решение, которое поможет вам обойти это. (Но это может быть не самый лучший вариант в реальном мире ...)

Когда в базу данных добавляется что-либо, что вы хотите найти, возьмите каждое слово и разбейте его на каждую возможную комбинацию из 1 или более последовательных букв.

например. для стека:

s, t, a, c, k, st, ta, ac, ck, sta, tac, ack, stac, tack, stack

Вставьте каждый из них в таблицу с идентификатором, который ссылается на исходные данные.

Тогда вы можете точно сопоставить любой поисковый запрос с этим списком слов (для полного и частичного совпадения). Если ваш пользователь выполняет поиск по нескольким ключевым словам, вы разделяете их по фронту и выполняете поиск по каждому из них, ища совпадения с одним и тем же идентификатором.

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