一致は開始ワイルドカードでは機能しないため、*abc*
との一致 動作しません。 LIKE
を使用する必要があります これを達成するには:
SELECT * FROM user WHERE user_login LIKE '%abc';
ただし、これは非常に遅くなります。
文字列の終わりを本当に一致させる必要があり、パフォーマンスがあなたを殺している間にこれを頻繁に行う必要がある場合、解決策は、文字列を逆にする別の列を作成することです。>>
user_login user_login_rev
xyzabc cbazyx
次に、'%abc'
を探す代わりに 、'cba%'
を探すことができます これは、列にインデックスが付けられている場合ははるかに高速です。また、'cba*'
を検索する場合は、MATCHを再度使用できます。 。検索文字列も逆にする必要があります。