1

質問があります。列内で正確に一致する文字列を見つける最善の方法は何ですか。

これの問題は、たとえば、検索しよlocate('needle', 'haystack') > 0.うとしている文字列が「Ed」のようなものであるが、ブロブまたはテキスト列内に「私は住んでいた」という文字列がある場合、locate() はreturn 6. しかし、これは私が求めているものではありません。完全一致では を使用するLIKE ''のが最適ですが、LIKE にはパフォーマンスの問題があるため、実行可能なソリューションではありません。

LOCATE()完全一致を行う方法はありますか?

4

1 に答える 1

3

あなたはこれを使うことができます:

WHERE CONCAT(' ', column, ' ') LIKE BINARY '% string_to_find %'

またはLOCATEを使用する:

WHERE LOCATE(BINARY ' Ed ', CONCAT(' ', column, ' '))

BINARYを使用すると、大文字と小文字が完全に一致します。LOCATEとLIKEのパフォーマンスは非常に似ていると思います。こちらのフィドルをご覧ください。

于 2013-03-11T21:07:35.770 に答える