首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中查找包含相同数字序列的字符串的最佳方法是什么?(假电话搜索)

在SQL中查找包含相同数字序列的字符串的最佳方法是什么?(假电话搜索)
EN

Stack Overflow用户
提问于 2014-11-25 09:14:54
回答 2查看 1.1K关注 0票数 2

首先要考虑的是使用一组由LIKE分隔的OR条件(如下所示)。

代码语言:javascript
复制
(p.string like '%1111111%'
or p.string like '%2222222%'
or p.string like '%3333333%'
or p.string like '%4444444%'
...)

可能的结果:

代码语言:javascript
复制
Phone
----------
761111111
3718888888
+214444444

但也许有人能提出另一种更优雅的方法来做这件事?

附注:

在我的情况下,Full-text-search不是一种选择。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-25 09:19:42

更新:查找重复出现的数字,您可以使用这样的函数。如果“text”中的任何字符至少连续使用@min,则返回1。

代码语言:javascript
复制
create function IsRecurring(@text varchar(255), @min int) returns int as
begin
    declare @i int = len(@text) - @min + 1
    declare @result int = 0
    while @i > 0 begin
        if replace(substring(@text, @i, @min), substring(@text, @i, 1), '') = '' begin
            select @result = 1
            break
        end
        select @i = @i - 1
    end
    return @result
end

示例用法:

代码语言:javascript
复制
select dbo.IsRecurring('84455552', 4)

如果任何字符至少连续使用4次,则返回1。

票数 2
EN

Stack Overflow用户

发布于 2014-11-25 09:57:52

如下所示:

代码语言:javascript
复制
select field_name 
from table_name 
where  CONTAINS(field_name, '"1111111*" OR "2222222*" OR "3333333*"')

使用此选项时,请确保安装了全文搜索功能。

参考这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27122669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档