用通配符进行过滤

1.LIKE操作符

通配符使用场景:搜索产品名中包含文本bean bag 的所有产品

利用通配符,可以创建比较特定数据的搜索模式。

PowerShell
通配符(Wildcard)
用来匹配值的一部分的特殊字符
PowerShell
搜索模式(Search Pattern)
由字面值、通配符或两者组合构成的搜索条件

通配符本身实际上是SQL的WHERE子句中有特殊含义的字符,SQL支持几种通配符。

为了搜索子句中使用通配符,必须使用LIKE操作符。

LIKE指示DBMS,后跟的搜索模式利用通配符匹配而不是简单的相等匹配进行比较。

通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。

1.1百分号(%)通配符

最常使用的通配符是百分号(%)。

在搜索串中,%表示任何字符出现任意次数。

SQL
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';
"SELECT`年份`,`主流派` FROM blockbusters WHERE `主流派` LIKE 'Action%'"

区分大小写:

根据DBMS的不同及其配置,搜索可以是区分大小写的。

1.2下划线(_)通配符

另一个有用的通配符是下划线(_).

下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。

SQL
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '_inch teddy bear';
"SELECT 
`票房`,
`主流派`
FROM
 blockbusters
 WHERE `票房` LIKE '$48_,295,561'"1.3方括号([])通配符
方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符
1.3方括号([])通配符

方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符

PowerShell
说明:并不总是支持集合
与前面描述的通配符不一样,并不是所有DBMS都支持用来创建集合的[]
微软的SQL Server支持集合,但是MySQL,Oracle,DB2,SQLites都不支持。
SQL
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact
2.使用通配符的技巧

正如所见,SQL的通配符很有用。

但这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。

通配符的使用技巧:

  • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
  • 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部