字符串查找。在模糊朝找的情况下,其实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') --0
3 like 这个就省略了╮(╯_╰)╭。
虽然说看起来like 没有 patindex 写起来方便,但是!如果是前匹配 AAA like 'B%' 的时候,可以走索引啊!!所以还是不同的情况选择不同的方式
4 比对一下
| 正则匹配 | 选择开始位置 | 支持索引查找 |
like | 可以 | 不可以 | 部分可以 |
charindex | 不可以 | 可以 | 不可以 |
patindex | 可以 | 不可以 | 不可以 |
如果错了,请各位拍砖~
祝大家新年快乐~