2012-04-18 2 views
0

Я использую последнюю версию MySQL 5.5.Столбец, который соответствует индексу полнотекстового содержимого, охватывающему несколько столбцов

У меня есть полнотекстовый индекс, охватывающие несколько столбцов в таблице создается специально для полнотекстового поиска (других таблиц в базе данных использует InnoDB):

somedata_search 
======== 
id 
name 
about 
note 
dislike 

У меня есть полнотекстовый индекс всех столбцов для ID исключения. Я могу запустить полнотекстовой поиск с помощью:

SELECT * FROM account_search WHERE MATCH(name, about, note, dislike) AGAINST('mykeyword*' IN BOOLEAN MODE); 

Это все работает отлично, но есть способ deteremine, какой столбец матч происходит из каждой строки? Если есть совпадения по столбцам в строке, я рад иметь только первый столбец.

+0

, что вы хотите достичь, если вы хотите, чтобы проверить матч каждого Colum против чего-то сделать это в четырех разные кварки –

ответ

1

Я не думаю, что есть какой-либо «родной» способ получить его, но это возможно сделать в любом случае.

Я не уверен, что это быстро, но он возвращает правильные данные

select text_test.*, 
     match(name) against ('dude' in boolean mode) as name_match, 
     match(info) against ('dude' in boolean mode) as info_match 
    from text_test 
where match(name, info) against ('dude' in boolean mode); 

http://sqlfiddle.com/#!2/5159c/1

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