我有以下查询:
SELECT *
FROM pin
WHERE MATCH (title) AGAINST ('+red +yellow +blue' IN BOOLEAN MODE)
OR MATCH (front) AGAINST ('+red +yellow +blue' IN BOOLEAN MODE)
如果我是正确的,这将给我回复结果,其中包含所有单词或前面的所有单词。
有没有办法设计查询,以便我也得到“红色”可能在标题中,“黄色”和“蓝色”可能在描述或任何其他组合中的结果?我希望任何列的任意组合中的所有三个单词的结果(但必须包含所有三个单词,不能少)。
答案 0 :(得分:2)
在两列上构建复合全文索引:
ALTER TABLE pin ADD FULLTEXT(title, front);
SELECT *
FROM pin
WHERE MATCH(title, front) AGAINST ('+red +yellow +blue' IN BOOLEAN MODE);