匹配的全程/期间运营商

时间:2012-08-23 08:43:03

标签: mysql match-against

我可以使用匹配对象搜索foo / col1col2的所有行:

SELECT col1, col2
FROM some_table
WHERE MATCH (col1,col2)
      AGAINST ('foo' IN BOOLEAN MODE);

但是假设我想用 foo。 搜索所有行(即foo,其中包含一个句号作为下一个字符)。在the docs page for Boolean Full-Text Searches它没有提到作为运算符的完整停止,所以我认为我可以使用其中任何一个:

AGAINST ('foo.' IN BOOLEAN MODE);
AGAINST ('"foo."' IN BOOLEAN MODE);
AGAINST ('"foo\."' IN BOOLEAN MODE);

但是,这会返回与结果相同的结果:

AGAINST ('foo.couldBeAnything' IN BOOLEAN MODE);
AGAINST ('foo' IN BOOLEAN MODE);
AGAINST ('foo*' IN BOOLEAN MODE);

此上下文中的.运算符是什么?以及如何匹配foo.

注意:我第一次问这个question about match-against foo.bar,这让我问这个后续行动。

1 个答案:

答案 0 :(得分:2)

在完整文本搜索中, 被视为空格,不幸的是,这意味着无法搜索标点符号。这背后的原因是文本搜索用于查找“单词”(不包括标点符号)。

要对标点符号进行此类搜索,您可以匹配正则表达式,例如:使用preg_match