我的搜索查询有问题。我正在搜索电子邮件。
我的搜索查询如下:
$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);
答案 0 :(得分:1)
尝试将您的关键字放在双引号中以搜索确切的短语。
... AGAINST ('\"%s*\"' IN BOOLEAN MODE) ...
<强> Boolean Full-Text Searches 强>
'p'香蕉' 查找包含两个单词中至少一个的行。'“有些话”' 查找包含完整短语“some words”的行 (例如,包含“某些智慧词”但不包含“某些词”的行 噪音词“)。