mySQL返回包含搜索词的行

时间:2014-05-30 05:10:02

标签: mysql

我试图返回某些列包含所有关键字的所有行。关键字可以是任意顺序包围任何内容。我查看了全文搜索,但似乎都没有给出我想要的那种控制。我可以这样做:

SELECT * 
FROM articles 
WHERE body LIKE '%term1%' AND body LIKE '%term2%' AND body LIKE '%term3'...

但是,随着任意数量的搜索术语变得混乱。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:0)

查看Fulltext binary search(在该页面上搜索A Basic Boolean Searching Application)。

答案 1 :(得分:0)

试试这个

SELECT * FROM `articles` WHERE MATCH (body) AGAINST
       ('term1 +term2 +term3 etc...' IN BOOLEAN MODE)

此处' + [keyword]'相当于AND。如果您在不同的列中搜索关键字,那么您可以;匹配(col1,col2,col3等...)对('关键字')。请记住,您需要定义一个FULLTEXT索引,其中包含要搜索的列(用于"匹配(col1,col2 ...)和#34;部分)