第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)、仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。