我必须在描述字段上使用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()
查询?
答案 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%'