我可以使用匹配对象搜索foo
/ col1
中col2
的所有行:
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
,这让我问这个后续行动。
答案 0 :(得分:2)
在完整文本搜索中, 被视为空格,不幸的是,这意味着无法搜索标点符号。这背后的原因是文本搜索用于查找“单词”(不包括标点符号)。
要对标点符号进行此类搜索,您可以匹配正则表达式,例如:使用preg_match。