首先要考虑的是使用一组由LIKE分隔的OR条件(如下所示)。
(p.string like '%1111111%'
or p.string like '%2222222%'
or p.string like '%3333333%'
or p.string like '%4444444%'
...)可能的结果:
Phone
----------
761111111
3718888888
+214444444但也许有人能提出另一种更优雅的方法来做这件事?
附注:
在我的情况下,Full-text-search不是一种选择。
发布于 2014-11-25 09:19:42
更新:查找重复出现的数字,您可以使用这样的函数。如果“text”中的任何字符至少连续使用@min,则返回1。
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示例用法:
select dbo.IsRecurring('84455552', 4)如果任何字符至少连续使用4次,则返回1。
发布于 2014-11-25 09:57:52
如下所示:
select field_name
from table_name
where CONTAINS(field_name, '"1111111*" OR "2222222*" OR "3333333*"')使用此选项时,请确保安装了全文搜索功能。
参考这里。
https://stackoverflow.com/questions/27122669
复制相似问题