2016-05-10 16 views
1

Мне нужно реализовать FULL-TEXT-поиск в mySQL InnoDB v5.6.20.
я добавил на двух VARCHAR (256) колоннах один за другим полнотекстовый индекс после того, как таблица была создана с помощью
ALTER TABLE 'client' ADD FULLTEXT('company') и
ALTER TABLE 'client' ADD FULLTEXT('country')проблемы с полным текстом mySQL

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

SELECT * FROM client WHERE MATCH (company) AGAINST (:keyword) 

Когда я использую два столбца в MATCH против ключевого слова я получаю no результат на всех.

SELECT * FROM client WHERE MATCH (company, country) AGAINST (:keyword) 

Что делать неправильно?

+0

Вы уверены, что 'keyword' присутствует в обоих 'компания' и' страна' для любых записей? –

+0

hm - либо в компании, либо в стране. Что мне не хватает? – Ben

+0

Ваш индекс FULLTEXT должен быть над обоими столбцами, а не двумя разделенными индексами – mitkosoft

ответ

1

Ввод нескольких столбцов внутри MATCH будет использовать AND, так что если вы хотите OR (основанный на ваш комментарий) Вы можете попробовать следующее:

SELECT * 
FROM client 
WHERE MATCH (company) AGAINST (:keyword) OR MATCH (country) AGAINST (:keyword) 
+1

эй Тим - это он - ты спас мой день! – Ben

+0

@Ben Рад быть полезным и спасибо за использование переполнения стека. –

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

  • Нет связанных вопросов^_^