2012-04-18 29 views
0

私は最新バージョンのMySQL 5.5を使用しています。複数の列にまたがるフルテキストインデックスに一致する列

Iは、テーブル内の複数の列にまたがるフルテキストインデックスが(データベース内の他のテーブルがInnoDBの使用)全文検索のために特別に生成した:

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

IはID以外のすべての列にフルテキストインデックスを有します。私が使用して全文検索を実行することができています:

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

これは、すべてはうまく動作しますが、試合は各行ごとに由来するどの列deteremineする方法はありますか? 1つの行に複数の列に一致するものがある場合は、最初の列だけを持つことになります。

+0

を返します。別のクーリ –

答えて

1

私はそれを取得する "ネイティブ"な方法はないと思いますが、それはとにかく可能です。

私はこれが高速であるかわからないが、それはあなたが何かに対して各columの一致を確認したい場合は、その後4でそれを行う何を達成したい、正しいデータ

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

関連する問題