私はLIKE
オペレータに問題があります。私は、そのです例えばのようなもので検索クエリを作成し、私はストリート34を検索:複数のLIKEとANDで "AND"
WHERE address LIKE '%Street%' AND address LIKE '%34%'
問題は、私が書いている場合は、あまりにも長いアドレスMySQLのクエリがダウンおかしく遅くなるということです。可能な高速ソリューションはありますか?私はオペレータREGEXP
またはIN
があることを知っていますが、彼らはOR
を使用して検索しますが、私はAND
で検索する必要があります。
ps:なぜ私は複数のLIKE
を書いていますか?なぜなら、「ストリート34」ではなく「34ストリート」というメッセージがあるからです。
あなたのテーブルは適切にインデックスされていますか? –
私は同じようにBTREEで索引付けされました。私はFULLTEXTを索引付けしていましたが、単語でしか検索できませんでしたが、私の場合はそれぞれの文字を検索する方が良いでしょう。最小文字は3から始まります –
LIKEオペランドが**%**で始まる場合、MySqlはINDEXを使用しません。あなたのクエリは** FULL TABLE SCAN **であり、@Romans Leonovsが書いたものを参照してください –