MySQL: преобразовать поиск "LIKE" в полный текст? - PullRequest
1 голос
/ 08 июня 2011

У меня довольно простой LIKE-поиск для MySQL, который я хотел бы преобразовать в полный текст.Проблема в том, что мне нужно иметь возможность реализовать его так, чтобы он начинался с X. Как в примере ниже:

SELECT column FROM table WHERE column LIKE "startswith%"

, как вы можете видеть, что запрос возвращает все результаты, которые начинаются с «setswith».Мне нужно сделать это с полным текстом.

Возможно ли это сделать?

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

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

Вы можете установить ключ только в начале столбца с помощью ADD INDEX (column(123)); (что будет толькоиндексировать первые 123 символа).Это также работает для столбцов text / blob (в последнем случае вы задаете двоичную длину).

0 голосов
/ 08 июня 2011

Я не уверен насчет MySQL, но в SQL Server вы можете преобразовать столбец в varchar и выполнить LIKE для результата, как показано ниже:

SELECT column FROM table WHERE CONVERT(varchar(255), column) LIKE 'startswidth%'

Так как этоСтандарт ANSI, я полагаю, MySQL справится и с этим.

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