sql必知必会6-使用通配符进行过滤

作者: liluchang 分类: 数据库 发布时间: 2018-04-01 11:58

为了在搜索子句中使用通配符,必须使用like操作符。通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符。

1,通配符(%),

在搜索中,%表示任意字符出现任意次数(包括0次)。例如

select prod_id,prod_name from products where prod_name like 'Fish%';

上面子句匹配出所有prod_name是以Fish开头的数据。通配符可以在搜索模式中任意位置使用,并且可以使用多次。like不能匹配null。如果数据长度固定,那么有可能数据库的字段是liluchang is good后面会跟很多空格内容来填充长度,此时,我没可以使用liluchang%good%来匹配。

注意,如果使用的access,则使用*而不是%。

2,通配符(_)下划线通配符。

_通配符作用和%类似,但是它只匹配单个字符,不能匹配多个字符。例

select prod_id,prod_name from products where prod_name like '__ inch teddy bear';

上面就是匹配了两个任意字符。只能匹配两个,不能一个或者多个。

需注意,DB2不支持_通配符,而access的_需要换成?。

3,通配符([]),方括号通配符。

[]通配符用来指定一个字符集,它必须指定一个位置,通配符位置的一个字符,注意,是一个字符。例如

select cust_contact from customers where cust_contact like '[JM]%';
select cust_contact from customers where cust_contact like '[^JM]%';

[JM]匹配方括号中任意一个字符,也只能匹配单个字符。因此,任何多余一个字符的名字都不匹配。此通配符可以用^(脱字号) 来否定。上面第一行,匹配任何开头为J或者M的内容,第二行则匹配任何开头不为J或者M的内容。

如果使用的是access,那么^要换成!。

通配符搜索一般比其他前面的几章的搜索要耗费更多的时间,

  • 不要过多的使用通配符,如果其他操作符能达到相同的目的,应该使用其他操作符。
  • 如果必须使用通配符的时候,也尽量不用把它用于搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置,如果放错地方,可能不会返回想要的数据。

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

标签云