0

我必须在许多字段中匹配文本。目前我在查询中使用了 Like。但是 Like 给出了太多结果。我已经阅读了有关 mysql FULLTEXT 查询的信息,我试图在我的查询中应用。但我不知道它的工作原理或不是。

旧查询:

select * from table where field1 like 'search text' or field2 like 'search text'

全文查询:

select * from table where MATCH(field1, field2) AGAINST ('search text' IN NATURAL LANGUAGE MODE )

我的问题是,是否可以使用全文匹配查询在所有具有或条件的字段中进行搜索?

4

2 回答 2

1

默认情况下,mysql 将MATCH(field1, field2)像您的旧查询一样在这两个字段中进行搜索。

您需要做的就是为这两个字段创建全文索引。

CREATE FULLTEXT INDEX index_name
    ON tbl_name (field1, field2);

例如:

SELECT * FROM tbl_name WHERE MATCH(field1, field2) AGAINST ('word1 word2' IN BOOLEAN MODE );

你会发现同样的:

SELECT * FROM tbl_name 
WHERE field1 LIKE '%word1%' OR field2 LIKE '%word1%' OR
      field1 LIKE '%word2%' OR field2 LIKE '%word2%'
于 2013-01-28T07:14:10.307 回答
0

像这样试试

where
name = 'search_key'
OR firstname ='search_key' 
OR lastname ='search_key'

它会解决你的问题吗

于 2013-01-28T05:21:20.587 回答