like操作符
前面介绍的操作符都是针对已知值进行过滤的。
通配符:用来匹配值的一部分的特殊字符。
为在搜索子句中使用通配符,必须使用like操作符。like后跟的搜索模式利用通配符而不是简单的相等匹配进行比较。
通配符搜索只能用于文本字段(字符串)。
百分号%通配符
表示任何字符出现任意次数(不管有多少字符)。
Select p1,p2 from p where p2 like 'b%'; 执行like子句时,将检索任意以b起头的词。
Select p1,p2 from p where p2 like '%b%'; 匹配任何位置上包含文本b的值,不论它之前之后出现什么字符。
通配符%能匹配0个(空格),1个,多个字符。
通配符%不能匹配NULL。
下划线_通配符
下划线只匹配单个字符。
Select p1,p2 from p where p2 like '__b'; 1个_匹配一个字符,不能多也不能少。
方括号[]通配符
用来指定一个字符集,必须匹配指定位置的一个字符。
Select p1 from p where p1 like '[ab]%' order by p1; 找出所有名字以a或b起头的字符串。
[]通配符可以使用前缀字符^来否定。
Select p1 from p where p1 like '[^ab]%' order by p1; 找出所有名字以a和b之外其他字母起头的字符串。
Select p1 from p where not p1 like '[ab]%' order by p1; 此句作用等同上句。
但是使用^比not操作符语法更简洁。
使用通配符的技巧
通配符比操作符的处理需要更长时间。
不用过度使用通配符,尽量使用其他操作符。尽量不要把通配符用在搜索模式的开始处,把通配符置于开始处搜索起来是最慢的,注意通配符的位置。