与匹配的句号/句号运算符



我可以使用match-and-:搜索col1/col2中具有foo的所有行

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

但假设我想搜索所有带有foo的行(即以句号作为下一个字符的foo)。在布尔全文搜索的文档页面上,没有提到句号是运算符,所以我想我可以使用以下任一项:

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.比赛?

注意:我第一次问这个问题是关于对阵foo.bar的比赛,这让我问了这个后续问题

句号或任何标点符号在Full-TEXT搜索中都被视为空格,不幸的是,这意味着无法搜索标点符号。这背后的原因是,文本搜索是为了找到"单词"(不包括标点符号)。

要对标点符号进行这样的搜索,可以对正则表达式进行匹配,例如使用preg_match。

相关内容

  • 没有找到相关文章

最新更新