LIKEを使用してこれを行うこともできますが、それはかなり恐ろしいことです。正規表現はここでより適切に機能します。ハッシュを無視したい場合は、次のような単純な検索でうまくいきます。
WHERE body ~ E'\\mbird\M''
それは見つけ'The bird flew very far.'
て、'The #bird flew very far.'
。#
ただし、次のように、検索する前にすべてを削除する必要があります。
WHERE body ~ E'\\m#bird\M''
\m
と\M
の性質上、これらの結果はどちらも見つかりません。
#
のを無視したくない場合は、次のように自分で展開してショートカットbody
を変更する必要があります。\m
\M
WHERE body ~ E'(^|[^\\w#])#bird($|[^\\w#])'
-- search term goes here^^^^^
を使用E'(^|[^\\w#])#bird($|[^\\w#])'
すると、検索されますが検索さ'The #bird flew very far.'
れませんが'The bird flew very far.'
、E'(^|[^\\w#])bird($|[^\\w#])'
検索されますが、検索さ'The bird flew very far.'
れません'The #bird flew very far.'
。微妙な違いがあるので、\A
代わりに、^
そして\Z
代わりに見たいと思うかもしれませんが、私はあなたが望むものだと思います。$
$
^
これらの正規表現検索(またはそのことについてはLIKE検索)はいずれもインデックスを使用しないため、を使用するものを使用して検索を制限できない限り、多くのテーブルスキャンとパフォーマンスの問題に備えることに注意してください。索引。代わりに、全文検索ソリューションを検討することをお勧めします。