2

/で一致fooするすべての行を検索できます。col1col2

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

しかし、 foo ですべての行を検索したいとします。(つまり、次の文字がピリオドの foo)Boolean Full-Text Searches のドキュメントページでは、full-stop が operatorであることは言及されていないため、次のいずれかを使用できると思いました。

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たので、このフォローアップをするようになりました。

4

1 に答える 1

2

終止符、または実際には句読点は、全文検索ではスペースのように扱われますが、残念ながら、これは句読点を検索する方法がないことを意味します。この背後にある理由は、テキスト検索は「単語」(句読点を含まない)を見つけるためのものであるということです。

句読点に対してこのような検索を行うには、たとえばpreg_matchを使用して、正規表現と照合します。

于 2012-08-23T17:10:26.010 に答える