首页 > 解决方案 > 在 MSSQL 中通过正则表达式在文本中查找带有数字的记录

问题描述

我将在列中查找包含以下文本的记录:

  1. 克隆我的项目
  2. 我的项目的克隆1
  3. 我的项目的克隆 2
  4. 我的项目的克隆 10
  5. 我的项目的克隆 15

“复制”字后总是有一个数字。

是否可以通过单个查询获得它们?我只使用“联合”找到了解决方案。

select * from items where name like 'Clone of my item'
union
select * from items where name like 'Clone% of my item'
union
select * from items where name like 'Clone%% of my item'

但我不喜欢它,因为如果我想找到“我的项目的 Copy123”之类的内容,那么我必须编辑上面的查询,以便再添加一个带有 3 个“%”字符的联合

select * from items where name like 'Clone%%% of my item'

标签: sql-serverregex

解决方案


使用 Single Wildcard %就足以实现这一点

DECLARE @T Table(Col Varchar(max))

insert into @T Values('Copy of my item')
insert into @T Values('Copy1 of my item' )
insert into @T Values('Copy2 of my item' )
insert into @T Values('Copy10 of my item')
insert into @T Values('Copy150000 of my item')


select * from @T 
where col like 'Copy% of my item'

在此处输入图像描述


推荐阅读