【发布时间】:2020-12-23 11:15:14
【问题描述】:
我希望在 SQL Server 的 nvarchar 列中搜索特定电子邮件(例如 fname@exmaple.com)。它应该很简单 -
Select * from Discussion where Comments like '%fname@example.com%'
但是,上述查询并未涵盖一种情况。如果结果集包含诸如“来自电子邮件 selfname@example.com 的用户的评论”之类的评论。在这种情况下,上述查询将返回包含“fname@example.com”和“selfname@example.com”的两条记录。
我正在寻找一个 sql 查询,其中电子邮件地址完全匹配,其余文本可以是任何内容。
我正在尝试在多个表中搜索电子邮件。我们在其中搜索电子邮件的列可以是 xml,nvarchar(max) 用于 cmets,nvarchar(50) 用于仅电子邮件。我们需要对记录集执行另一项工作。
结果集: 如果我正在搜索“fname@example.com”,结果集应包含以下内容:
- lorem ipsum fname@exmaple.com
- fname@example.com lorem ipsum
- Lorem ipsum fname@exmaple.com dolor sit amet
结果集不应包含以下内容:
- selfname@example.com dolor sit amet
- Lorem ipsum selfname@exmaple.com dolor sit amet
提前致谢。
【问题讨论】:
-
邮件地址不能加空格吗?
like '% fname@example.com %' -
您能否详细说明您在结果中究竟需要什么?
-
是上面的免费类型,还是会一直是
'Comment from a user with email {Email Address}'的格式,或者你能不能有类似''用户使用电子邮件地址{Email地址}发表评论'“?有吗?电子邮件地址后面的文本?但是,理想情况下,电子邮件似乎应该是一个不同的列,您应该修改您的设计。 -
顺便说一句,如果您正在检查 nvarchar,那么它也可以与 nvarchar 进行比较:
N'%fname@example.com%' -
@Dhrumilshah - 我添加了一些结果集应该是什么样子的示例。谢谢。
标签: sql sql-server text-parsing