Mysql全文搜索与匹配和反对

时间:2016-04-20 05:51:23

标签: mysql

我必须在描述字段上使用mysql全文搜索。

现在假设我在表格中有以下4条记录:

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

现在,如果我搜索术语" aa cc",那么它应该读取那些记录中必须存在这两个词的描述。所以以下记录应该是结果。

  aa bb cc dd
    cc ee tt aa

如何编写mysql match() against()查询?

2 个答案:

答案 0 :(得分:1)

您应该使用REGEXP '[[:<:]]aa[[:>:]]'来查找确切的字词,因此请尝试以下查询,以确定其工作正常。

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

注意:您可以使用类似&#39;%cc%&#39;但是也可能存在复杂的问题,因为如果你要搜索“cc&#39;这意味着它将在整个字符串中搜索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    

答案 1 :(得分:0)

假设您的表名为table1,并且包含字符串的列为col_name,那么您可以使用以下查询

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