sql-server - 在 MSSQL 中通过正则表达式在文本中查找带有数字的记录
问题描述
我将在列中查找包含以下文本的记录:
- 克隆我的项目
- 我的项目的克隆1
- 我的项目的克隆 2
- 我的项目的克隆 10
- 我的项目的克隆 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'
解决方案
使用 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'
推荐阅读
- php - Laravel 队列无法发送邮件
- python - 从文件中读取 16 字节 Fortran 浮点数到 Python
- php - laravel 选择框值显示
- h2o - 使用 H2OFlow 解释增益/提升图
- forms - Symfony Forms 将占位符添加到集合字段的原型中
- thymeleaf - 在 Thymeleaf 中,如何让 href 链接到页面的一部分?
- laravel - 项目出现在分页的多个页面上。Laravel 5.1.46
- wordpress - 如何删除表格的高度行?
- c# - 填充数组一次并稍后引用
- javascript - 如何在本地将 CSS 和 JS 连接到 Chromium Delphi?