MySQL FULLTEXT не будет работать с более чем одним полем - PullRequest
1 голос
/ 03 апреля 2011

У меня стандартный стандартный запрос MySQL для полных текстов:

SELECT * FROM accounts WHERE MATCH(first_name, username) AGAINST ('stringhere')

Проблема в том, что он не может найти полнотекстовый индекс в поле first_name, хотя я уже проиндексировал его несколько раз. Он отлично работает, когда я делаю это:

SELECT * FROM accounts WHERE MATCH(username) AGAINST ('stringhere')

Или это:

SELECT * FROM accounts WHERE MATCH(first_name) AGAINST ('stringhere')

Но не с двумя или более полями. Что я здесь не так делаю? Я удостоверился, что индексы установлены на полях, и я даже отремонтировал таблицу, но все еще не работал: - (

Я получаю этот результат при использовании более одного поля:

Error in query: Can't find FULLTEXT index matching the column list

Что сбивает с толку и раздражает, потому что, как я уже сказал, я определенно определил полнотекстовый индекс.

Спасибо за любую помощь,

Джеймс

1 Ответ

5 голосов
/ 03 апреля 2011

Было бы полезно увидеть вывод

show create table accounts

Я полагаю, что у вас есть что-то вроде

FULLTEXT(first_name)
FULLTEXT(username)

вместо

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