クライアントには、AJR Kelly Ltdなどのデータベースに保存されている会社のように、ユーザーの入力に応じていくつかの形式で検索できる会社名を検索するかどうかを尋ねるユーザーがいます。ユーザー"AJR Kelly"を検索します。MySQL LIKE%string%はあまり寛容ではありません。他に何か使えますか?
<cfif pctermsCount gt 0>
AND (LOWER(p.name) LIKE '%#pcTerms#%')
</cfif>
は、彼らは「ケリー」を検索した場合、会社が発見されたが、彼らは「J・ケリー」または「AJケリー」のような文字列の壊れたバージョンを検索する場合、それが見つからないです。
ちょっと寛容にするためにできることはありますか?
ありがとうございました。
MyISAMを使用しています。私はFullTextを検討したので、テーブル上でそれを有効にできることをテストしました。私はまだそれを試していません、なぜなら、それはユーザーインターフェイス上でそれを与えるためのかなりの手間がかかりますが、私はPHPMyAdminのクライアントにいくつかの例を示しますが、私はFullText彼の好みにあまりにも寛大であるかもしれない。ご回答有難うございます。フルテキストは、彼が問題に生きることができないなら、最高の解決策であるようです。 –
UIに手を加える必要はありません。あなたは同じ検索文字列を取ってWHEREに '(ブールモードでは 'AJ Kelly'に対して)MATCH(indexcol)、ブールモードでは 'AJ Kelly'に対してORDER BY MATCH(indexcol)DESC' –
申し訳ありませんが、私は不明でした。 「ユーザーインターフェイス」とは、ウェブサイト自体のバックエンドコードを意味していました。たくさんの場所から来ているたくさんのものをベースにしたかなりのクエリビルドがあります。かなり複雑ですので、フルテキストの結果を彼に見せることでテストするのは簡単ですPHPMyAdminでは、バックエンドコードに多くの変更を加えて試してみます。申し訳ありませんが、そのクエリのスニペットを投稿してくれてありがとうございました。 :D –