在搜索电子邮件地址时,MySQL MATCH AGAINST

Vla*_*mir 2 mysql sql full-text-search full-text-indexing

我正在编写新闻稿脚本,我需要在地址中实现搜索.我使用FULLTEXT索引表,但是当我执行查询时,例如:

SELECT * FROM addresses WHERE MATCH(email) AGAINST("name@example.com" IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)

我得到了奇怪的结果.它显示"example.com"上的所有电子邮件以及用户"name"的所有电子邮件.比如我得到:

john@example.com
name@mail.net
steven@example.com
Run Code Online (Sandbox Code Playgroud)

我重写了查询以使用LIKE"%name@example.com%",但对于一个大表,它需要花费大量的时间才能完成.这有解决方案吗?我想在搜索时只显示完整匹配的电子邮件而不是其中的一部分.先感谢您.

Jiv*_*ngs 9

要匹配精确短语,您必须将短语括在双引号中.所以将您的查询更改为:

SELECT * FROM addresses WHERE MATCH(email) AGAINST('"name@example.com"' IN BOOLEAN MODE)

资源