第6课 用通配符进行过滤
第6课 用通配符进行过滤
如何使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤。
通配符(wildcard):用来匹配值的一部分的特殊字符。(只能用于文本字段)
搜索模式(search pattern):由字面值、通配符或两都组合构成的搜索条件。
6.1.1 百分号(%)通配符
%:表示任何字符出现任意次数。(不会匹配NULL)
例:找出所有以词Fish开头的产品,SELECT如下:
1 SELECT prod_id,prod_name 2 FROM Products 3 WHERE prod_name LIKE 'Fish%'
6.1.2 下划线(_)通配符
_:与%一样,但它只匹配单个字符,而不是多个字符。
1 SELECT prod_id,prod_name 2 FROM Products 3 WHERE prod_name LIKE 'Fish_'
注:匹配Fish开头,后跟任意一个字符。
6.1.3 方括号([])通配符
[]:用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。
例:找出所有名字以J或M起头的联系人,可进行如下查询:
1 SELECT prod_id,prod_name 2 FROM Products 3 WHERE prod_name LIKE '[JM]%'
注:
此通配符可以用前缀字符^来否定。(可以使用NOT,^的唯一优点是在使用多个WHERE子句时可以简化语法)
例:查询匹配以J和M之外的任意字符起头的任意联系人名。
1 SELECT prod_id,prod_name 2 FROM Products 3 WHERE prod_name LIKE '[^JM]%'
6.2 使用通配符的技巧
1)、不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
2)、在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
3)、仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。
小学生C++