如何使用FULLINDEX对MySQL中的两列或更多列进行匹配?

时间:2013-12-04 20:12:49

标签: mysql sql indexing

我有以下查询:

SELECT *
FROM pin
WHERE MATCH (title) AGAINST ('+red +yellow +blue' IN BOOLEAN MODE)
OR MATCH (front) AGAINST ('+red +yellow +blue' IN BOOLEAN MODE)

如果我是正确的,这将给我回复结果,其中包含所有单词或前面的所有单词。

有没有办法设计查询,以便我也得到“红色”可能在标题中,“黄色”和“蓝色”可能在描述或任何其他组合中的结果?我希望任何列的任意组合中的所有三个单词的结果(但必须包含所有三个单词,不能少)。

1 个答案:

答案 0 :(得分:2)

在两列上构建复合全文索引:

ALTER TABLE pin ADD FULLTEXT(title, front);

SELECT *
FROM   pin
WHERE  MATCH(title, front) AGAINST ('+red +yellow +blue' IN BOOLEAN MODE);