我有带标题的表格,我只想找到那些完全由一部分单词组成的标题。
例如,
SELECT title
FROM my_titles_table WHERE MATCH (title) AGAINST ('word1 word2 word3 ... wordN' IN NATURAL LANGUAGE MODE)
我想找到所有由word1 word2 word3 ... wordN或其中一部分组成的标题,但没有其他单词。
例如,如果我的查询是"如何训练你的龙"就像我的话,我想找到像#"龙"或者"训练你的龙"或者"你的龙训练"但不是"龙与地下城"因为" dungeon"不在我的查询中。
答案 0 :(得分:0)
我认为全文搜索不支持此功能。事实上,很难找到一种蛮力的方式来做到这一点。
这是一种强力方法:
where trim(replace(replace(replace(title, $word1, ''), $word2), ''), $word3, '')) = ''
这并不完美,因为"松苹果"将匹配"松苹果"。
嗯,嗯。 。 。还有另一种使用正则表达式的替代方法: where title like concat('^(', replace('word1 word2 word3', ' ', '|'),
'[ ]*)+$)
也就是说,匹配必须从字符串的开头和结尾开始,插入的单词必须全部匹配。
据我所知,目前还没有办法加快这样的查询。