开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情
一、前言
大家好,今天文章的内容是:
- 【数据过滤】
二、内容
2.1、逻辑操作符
我们可以使用逻辑操作符来联结或改变WHERE子句中的子句。
常用逻辑操作符如下:
AND:组合多个过滤条件(同时匹配)OR:匹配任一过滤条件(匹配任一条件即可)
注意事项:
WHERE可包含任意数目的AND和OR操作符。- 适当使用圆括号
()来明确分组逻辑操作符,这是因为操作符AND的优先级比OR高,这就产生了计算次序,有时我们希望的过滤条件可能不起作用,因此推荐使用圆括号来消除歧义。
2.2、IN 操作符
在WHERE子句中,可以使用IN操作符,用于指定条件范围,与圆括号搭配使用,范围中的每个条件都可以进行匹配。
实际上,IN操作符的功能和OR操作符类似,比如下面两条语句的效果是相同的:
SELECT p_id IN (10, 11);SELECT p_id = 10 OR p_id = 11;
2.3、NOT 操作符
在WHERE子句中,NOT操作符用于否定它之后所跟的任何条件。通过NOT操作符可以对一些过滤条件进行取反,轻松达到想要的数据过滤效果。
2.4、LIKE 操作符
前面的过滤条件,都是根据已知值进行匹配的,过滤的值都是已知的。而利用通配符,我们可以创建不一样的检索模式。
在WHERE子句中,我们可以利用通配符来匹配值的一部分。比如匹配名称含有ad的所有产品。这样方法称为搜索模式,即search pattern,指的是由字面值、通配符或者二者组合构成的搜索条件。
为了使用通配符,必须使用 LIKE 操作符。
LIKE指示MySQL后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
通配符可以在搜索模式中任意位置使用,并且我们可以组合使用多个通配符。
(1)百分号通配符(%)
在搜索串中,百分号(%)表示任何字符出现任意次数,即匹配0个、1个或多个字符。
比如下面这条语句用于检索所有以Web起头的产品:
SELECT prod_id, prod_name
FROM products
WHERE pro_name LIKE 'Web%';
再举一个例子,下面这条语句将检索所有包含文本Web的值,不论它之前或之后出现什么字符:
SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE '%Web%';
另外需要注意,百分号(%)通配符无法匹配NULL值。
(2)下划线通配符(_)
下划线(_)通配符用于匹配单个字符。
三、后话
好了,今天的文章内容就到这里,感谢观看。