mssql 字符串包含(like)-字符串检索的三种方式分享


在MSSQL中查询数据是否包含某一字符,我们通常会想到like 方式,其实我们还有以下两种方式可供选择:
使用replace charindex 字符串处理函数来达到字符比对的效果

1 like 关键字查找

 select [列名1],[列名2] from [表名] where [列名] like '%检索字%'

2 replace 关键字查找

replace关键字查找原理:首先将待查找字符串替换掉,然后同源字符串进行比较,
如果替换后的字符串长度小于源字符串,则代表字符串包含关键字

   select [列名1],[列名2] from [表名] where   len([列名])  > len(replace([列名],关键字,''))   

3 charindex 关键字查找方法

charindex关键字检索原理: 将字段值和关键字放入charIndex函数,如果关键字位置大于0,则代表字段值存在关键字

    select [列名1],[列名2] from [表名] where  charindex([列名],关键字) >=0 


create table A (keyId1 int ,info1 varchar(60))

insert into A values(1,'abcdrf'),(2,'plokmoo'),(3,'cdghij')
go
 

select  keyId1,info1 from A where info1 like '%cd%'

select  keyId1,info1 from A where CHARINDEX('cd',info1)>0
 
select  keyId1,info1 from A where LEN(info1) >LEN(REPLACE(info1,'cd',''))
 

mssql检索数据的三种方式

相关阅读:
sql like 关键字简介及应用