Sql server 如何识别包含电话号码的记录

Sql server 如何识别包含电话号码的记录,sql-server,tsql,phone-number,Sql Server,Tsql,Phone Number,我需要识别数据库中包含电话号码的记录,以便将其发送给联络小组 例如: tblData 身份证件 议论 数据创建 给定此表结构,查询可能是: SELECT * FROM tblData WHERE comment [HeresWhereINeedHelp] 评论可能也很可能包含各种其他数据。评论示例: 是的,我有一次可怕的经历。我想找个人打111.222.3333给我。多谢各位 应在查询中提取包含此注释的记录,因为它包含电话号码 我尝试了一个扩展的存储过程来启用正则表达式搜索,但是性能非常糟糕。

我需要识别数据库中包含电话号码的记录,以便将其发送给联络小组

例如: tblData

身份证件 议论 数据创建 给定此表结构,查询可能是:

SELECT * FROM tblData WHERE comment [HeresWhereINeedHelp]
评论可能也很可能包含各种其他数据。评论示例:

是的,我有一次可怕的经历。我想找个人打111.222.3333给我。多谢各位

应在查询中提取包含此注释的记录,因为它包含电话号码

我尝试了一个扩展的存储过程来启用正则表达式搜索,但是性能非常糟糕。系统为SQL Server 2012

非常感谢您的指点。

您应该看看。在你的情况下,你可能会按照

WHERE comment LIKE '%[0-9][0-9][0-9]_[0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]%'
由于您正在搜索字符串中的任何位置,因此在大型数据集上处理这一操作也需要很长时间-您可能希望尝试的另一个选项是在输入电话号码时检查注释字段,然后使用ContainsPhoneNumber位之类的列标记该行。这样,您就可以在该列上建立索引并进行更快的查找。

您应该查看。在你的情况下,你可能会按照

WHERE comment LIKE '%[0-9][0-9][0-9]_[0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]%'

由于您正在搜索字符串中的任何位置,因此在大型数据集上处理这一操作也需要很长时间-您可能希望尝试的另一个选项是在输入电话号码时检查注释字段,然后使用ContainsPhoneNumber位之类的列标记该行。这样,您就可以在该列上建立索引并进行更快的查找。

我将为存储为10位整数的电话号码创建一个单独的表。 运行一次Regex来解析电话号码。
索引该列,您将获得索引搜索速度

我将为存储为10位整数的电话号码创建一个单独的表。 运行一次Regex来解析电话号码。
索引该列,您将获得索引搜索速度

另外:这将对格式的变化非常敏感-如果电话号码有不同的间距,如“123 456-7890”,你必须使用额外的过滤器来捕捉。谢谢,米库斯基。5个看起来5个看起来5个看起来5个会让我到那里去,因为我想找7个数字,我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:哪里哪里有评论的地方我想我会有5个5个5个5个5个5个会让我到我到那里我到那里我会有5个5个5个5个5个5个5个5个5个5个会让我到我到我到我到我到那里我到我到那里我到那里,我想我想我到那里我想我想我想我想我想我想找我想我想找7个数字,我想找7个数字,我想找7个数字,5个数字,5个数字,5个5个5个5个5个5个5个5个,5个5个5个5个5个5个5个会][0-9][0-9][0-9]%'或类似“%[0-9][0-9][0-9].[0-9][0-9][0-9][0-9]”的注释另外:这对格式的更改非常敏感-如果电话号码具有不同的间距,如“123 456-7890”,则必须使用额外的筛选器来捕获。谢谢,mikurski。5个看起来5个看起来5个看起来5个会让我到那里去,因为我想找7个数字,我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:我想找7个数字,以及:哪里哪里有评论的地方我想我会有5个5个5个5个5个5个会让我到我到那里我到那里我会有5个5个5个5个5个5个5个5个5个5个会让我到我到我到我到我到那里我到我到那里我到那里,我想我想我到那里我想我想我想我想我想我想找我想我想找7个数字,我想找7个数字,我想找7个数字,5个数字,5个数字,5个5个5个5个5个5个5个5个,5个5个5个5个5个5个5个会][0-9][0-9][0-9]%'或类似“%[0-9][0-9][0-9].[0-9][0-9][0-9][0-9]”的评论