我有一张表TestInsertBase,里边所有的数据如下:
Id Name
1 张三asdfg
2 李四edghws
3 王五sdfgs
4 赵六qwer
5 123ffgadcc
6 456bsnns
7 456kluty
1、like ‘%模糊匹配内容%’,该种模糊匹配为包含匹配
select * from TestInsertBase where name like '%qw%'
查询出表TestInsertBase中Name包含qw的项,结果:
Id Name
4 赵六qwer
2、like ‘模糊匹配内容%’与like ‘%模糊匹配内容’,首匹配与尾匹配
select * from TestInsertBase where name like '王%'
查询出表TestInsertBase中Name以“王”字为首的所有数据,结果:
Id Name
3 王五sdfgs
select * from TestInsertBase where name like '%y'
查询出表TestInsertBase中Name以字母“y”结尾的所有数据,结果:
Id Name
7 456kluty
3、_匹配,固定长度字符匹配,一个_代表一个字符
--匹配name为8位字符长度的数据
select * from TestInsertBase where name like '________'
结果为:
Id Name
2 李四edghws
6 456bsnns
7 456kluty
--匹配name为8位字符长度,且倒数第三位为u的的数据
select * from TestInsertBase where name like '_____u__'
结果为:
Id Name
7 456kluty
4、[],范围匹配,匹配包含在中括号中字符的内容
--有一条数据为456bsnns,以下方式都能查询到这条
--1、匹配第4位为b的
select * from TestInsertBase where name like '456[b]snns'
--2、匹配第4位为bcdef其中一位的
select * from TestInsertBase where name like '456[bcdef]snns'
--2、匹配第4位为a到f中其中一位的
select * from TestInsertBase where name like '456[a-f]snns'
5、[^],范围匹配的取反,匹配不包含在这个范围中的字符
--有一条数据为456bsnns、一条为456ksnns
--1、匹配第4位不为b的
select * from TestInsertBase where name like '456[^b]snns'
--2、匹配第4位不为bcdef其中一位的
select * from TestInsertBase where name like '456[^bcdef]snns'
--2、匹配第4位不为a到f中其中一位的
select * from TestInsertBase where name like '456[^a-f]snns'
以上几种方式都会将456bsnns过滤,查询出456ksnns