1

検索クエリに問題があります。メールを探しています。

次のような検索クエリがあります。

  $query = sprintf("SELECT mailer_subscribers.id, mailer_subscribers.email, mailer_subscribers.status,mailer_segmentlinker.segment_id, mailer_segmenten.segmentnaam FROM mailer_subscribers 
                        JOIN mailer_segmentlinker ON mailer_subscribers.id=mailer_segmentlinker.subscriber_id
                        JOIN mailer_segmenten ON mailer_segmentlinker.segment_id=mailer_segmenten.id
                        WHERE MATCH (email) AGAINST ('%s*' IN BOOLEAN MODE)", $key);

しかし、「」の例でキーワードを入力するjohn.smithと、同じ名前または姓を持つすべての値が返されます

john.smith@example.com
john.notsmith@example.com
smith.hendrix@example.com
josh.josh@smith.com

私はそれが私にちょうどリストを与える必要がありますjohn.smith.


編集:

私を助けた解決策はこれでした: WHERE mailer_subscribers.email LIKE '%%%s%%'", $key);

4

1 に答える 1

1

キーワードを二重引用符で囲んで正確なフレーズを検索してみてください。

... AGAINST ('\"%s*\"' IN BOOLEAN MODE) ...

ブール全文検索:

'apple banana'
2 つの単語の少なくとも 1 つを含む行を検索します。

'"some words"' "some words"
という正確な語句を含む行を検索します (たとえば、"some words of Widness" を含み、"some noise words" を含まない行)。

于 2013-02-18T09:08:12.527 に答える