2013-02-26 4 views
1

У меня есть таблица MyISAM с именем links. Он имеет столбец searcher, который имеет индекс FULLTEXT. Это мои значения переменных:MATCH() AGAINST() не соответствует второй строке - MySQL

  1. ft_min_word_len = 1
  2. ft_stopword_file =
  3. ft_max_word_len = 84

Мне нужно, чтобы соответствовать строки, которые содержат как [show] & [1] в любом порядке.
я запускаю этот запрос:

SELECT * FROM links WHERE MATCH(searcher) AGAINST('+[show] +[1]' IN BOOLEAN MODE) 

Но это также соответствие строки, которые не содержат [1] строку. В чем проблема?

+0

Я не знаком с FULLTEXT MySQL, но каковы эти '' '' 'для? Что относительно 'SELECT * FROM links WHERE MATCH (искатель) ПРОТИВ ('+ show +1' В РЕЖИМЕ BOOLEAN)'? Sry, когда я полностью ошибаюсь, но смотрел только документацию ... –

+0

Мне нужно '[' ']'. Их нельзя устранить. – sanchitkhanna26

+0

Являются ли скобки частью строки, которую вы ищете, или являются частью синтаксиса? Мэбе, тебе нужно их избежать? –

ответ

1

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

Этот запрос должен работать для вас:

SELECT * FROM links WHERE MATCH(searcher) AGAINST('+"[show]" +"[1]"' IN BOOLEAN MODE) 

Вот некоторые примеры фидель:

Смежные вопросы