だから私はこのコードを使用する場合SELECT * FROM user where BINARY LOWER(name) LIKE LOWER('%{$search}%')
LEEの単語を検索すると、LEEを使用するすべての文字が表示されます。私は手紙を検索した場合 のようなS LEE P、LEE YONE、U LEE、LEE OPARDなど さらに悪いことには、まだ、 "" すべてが表示されます。単語ごとにmysqlのデータを見つける方法は?
単語単位でのみ作成できますか?私はLEE YONE
SELECT * ( '%search $') – Ruby
なぜ正確にバイナリ比較を明示的に使用してから、あなたのキーワード**を両方ともキャストしますか?データ**を小文字に変換して大文字小文字を区別しない(=非バイナリではない)比較を行い**、潜在的なインデックスの利点**を完全に排除し**大規模なテーブルでのパフォーマンスを予想通りに*殺す* –
$ search変数の先頭と末尾に、$ search = ""のようにスペースを1つ追加する必要があります。 $ search。 ""; 'この変数をクエリに使用します。 また、次のようにクエリーにスペースを追加することもできます: 'SELECT * FROM user where BINARY LOWER(name)LIKE LOWER( '%{$ search}%')' これはスペースが文字列内の単語を区切るものであるためです。 –