Я добавляю функцию «поиск по электронной почте» в таблицу базы данных контактов (MySQL, InnoDB engine) для нашей системы CRM. Я добавил индекс FULLTEXT и частичные поиски вроде этого
WHERE MATCH(cc.email_c) AGAINST('Joe' IN NATURAL LANGUAGE MODE)
работают нормально. Тем не менее, если я пытаюсь сопоставить полный адрес электронной почты, как это
WHERE MATCH(cc.email_c) AGAINST('Joe@gmail.com' IN NATURAL LANGUAGE MODE)
, все адреса электронной почты с Gmail возвращаются. Я уже отказался от возможности использования BOOLEAN MODE, насколько я понимаю, он не поддерживает символ «@» в запросе. Есть ли какой-либо другой способ использовать МАТЧУ ПРОТИВ, при этом все еще имея возможность поиска по точному полному адресу?
Я всегда могу использовать SQL с LIKE и некоторыми подстановочными знаками, но я все же предпочел бы иметь полнотекстовый поиск.