首页 新闻 会员 周边 捐助

mssql 模糊查询语句

0
悬赏园豆:10 [已解决问题] 解决于 2020-04-30 10:31

以字母开头(模糊),跟接固定数字,最后以数字结尾(模糊)的查询语句

如:以某几个字母开头+18+数字结尾,[a-zA-Z]+18+[0-9]

我用的是select * from Table t where t.Name like '[a-zA-Z]18%[0-9]' 查询不出来

mcluzhi的主页 mcluzhi | 初学一级 | 园豆:6
提问于:2020-04-24 11:02

你用的sqlserver 哪个版本? 原生支持正则了?

。淑女范erり 4年前

@。淑女范erり: sql2012,不懂所以才问的

mcluzhi 4年前

@mcluzhi: https://www.cnblogs.com/Lulus/p/9497861.html 这个可能和你的情况一样。

。淑女范erり 4年前

@。淑女范erり: 我只是不知道这个通配符怎么写

mcluzhi 4年前
< >
分享
最佳答案
0

不确定几个字母开头吗,最多的个数总知道吧,只能这样了,把所有个数枚举出来
效率堪忧
select * from test1 where cname like '[a-Z]18[0-9]' or cname like '[a-Z][a-Z]18[0-9]'

收获园豆:10
0539 | 菜鸟二级 |园豆:442 | 2020-04-24 16:25

你这个我用过哦,查不出来数据的

mcluzhi | 园豆:6 (初学一级) | 2020-04-24 16:27

@mcluzhi: 你写的有问题,而且一个a-z只能查1位,你库里没有指定位的肯定

0539 | 园豆:442 (菜鸟二级) | 2020-04-24 16:42

@多安分: 前边的字母是2-4位,中间跟18,后边的数字为2-6位

按照你的写法,我用了以下方式都查不到数据

like '[a-Z]{2,4}18%'

like '[a-Z]{2,4}[0-9]{2,6}'

mcluzhi | 园豆:6 (初学一级) | 2020-04-24 16:48

@mcluzhi: {2,4} 这个写法你确定有吗???

0539 | 园豆:442 (菜鸟二级) | 2020-04-24 16:51

@多安分: 

那就只能用这种写法了

like '[a-Z][a-Z][a-Z]18[0-9][0-9][0-9][0-9]'

这种太尴尬了

mcluzhi | 园豆:6 (初学一级) | 2020-04-24 16:55

2-4和2-6的排列组合有多少种,哈哈哈
select * from test1 where
cname like '[a-Z][a-Z]18[0-9][0-9]'
or cname like '[a-Z][a-Z]18[0-9][0-9][0-9]'
or cname like '[a-Z][a-Z]18[0-9][0-9][0-9][0-9]'
or cname like '[a-Z][a-Z]18[0-9][0-9][0-9][0-9][0-9]'
...
以此类推,我的意思是这个

0539 | 园豆:442 (菜鸟二级) | 2020-04-24 17:08

@mcluzhi: 那么办法,要么你查出来 cname like '[a-Z][a-Z]18%' or cname like '[a-Z][a-Z][a-Z]18%' or cname like '[a-Z][a-Z][a-Z][a-Z]18%' or cname like '[a-Z][a-Z][a-Z][a-Z][a-Z]18%'再用程序逻辑过滤吧

0539 | 园豆:442 (菜鸟二级) | 2020-04-24 17:11
其他回答(2)
0
 
悟行 | 园豆:12559 (专家六级) | 2020-04-24 14:29
0

((a wher x like '[a-z]%' ) a where x '%18%' ) a where x '%[0-9]'

舟翅桐 | 园豆:675 (小虾三级) | 2020-04-30 13:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册