2016-04-20 9 views
2

です。記述フィールドにmysql全文検索を使用する必要があります。Mysql全文検索で一致する件数が

Description field: 
    aa bb cc dd 
    xx aa ff gg 
    hh kk cc qq 
    cc ee tt aa 

を今私は、それは、これら2つの単語がレコードに存在している必要があり、それらの説明を読んでください、用語「AA CCを」検索する場合:

は、今私がテーブルに4つのレコードを次したとします。したがって、次のレコードが結果になるはずです。

aa bb cc dd 
    cc ee tt aa 

mysql match() against()のクエリの書き方は?

答えて

0

あなたのテーブル名が文字列col_nameその後、あなたはあなたが正確な単語を見つけるためREGEXP '[[:<:]]aa[[:>:]]'を使用し、それが正常に動作しているクエリの下に試してみてください、次のクエリ

select * from table1 where col_name like '%aa%' and col_name like '%cc%' 
+0

データベース 'aamm BB CC DDのデータを持っている場合も、それは上記のクエリは、正確な単語を検索されていないので、この出力を返すことです。 –

1

を使用することができますで含まtable1と列であると仮定します。

SELECT * FROM `table_name` 
    WHERE `table_name`.`Description` REGEXP '[[:<:]]aa[[:>:]]' 
    and `table_name`.`Description` REGEXP '[[:<:]]cc[[:>:]]'; 

注:また、「%増の%」のように使用することができますが、複雑な問題がある可能性ができますが、それは文字列全体そうではない正確な言葉では、cc解析を検索します意味「CC」を検索する場合は理由私は強くあなたが使用をお勧めしますREGEXP '[[:<:]]word[[:>:]]

例:

入力テーブル

 Description 
    aa bb cc dd 
    xx aa ff gg 
    hh kk cc qq 
    cc ee tt aa 
    aamm bb cc dd 
    aa bb ccmm dd 

出力:

 Description 
    aa bb cc dd 
    cc ee tt aa  
関連する問題