字符串查找。在模糊朝找的情况下,其实3者的效率是差不多的。都需要一个一个取出来然后扫一遍╮(╯_╰)╭。然而用法还是会有一点儿的区别
1 charindex (查找的字符串,字符串表达式[,开始查找的位置]) ,简单来说用法就是这样纸。然而这个函数对 text,ntext,image 类型,并且从1开始哦~并不是0
SELECT CHARINDEX('123','123123123123123') --1SELECT CHARINDEX('123','123123123123123',3) --4
2 Patindex ('%%查找的字符串%%',字符串表达式) ,既然能用 %%%% 那就表示了兼容了like 所支持的正则表达式了。
SELECT PATINDEX('%%1234%%','1234123123123123') --1SELECT PATINDEX('1234','1234123123123123') --
3 like 这个就省略了╮(╯_╰)╭。
虽然说看起来like 没有 patindex 写起来方便,但是!如果是前匹配 AAA like 'B%%' 的时候,可以走索引啊!!所以还是不同的情况选择不同的方式
4 比对一下
正则匹配 | 选择开始位置 |
支持索引查找 | |
like |
可以 | 不可以 |
部分可以 |
charindex |
不可以 |
可以 |
不可以 |
patindex |
可以 |
不可以 |
不可以 |
更多SQL Server文章请关注