一.AND
1.AND
运算符是组合两个或多个布尔表达式的逻辑运算符,只有当两个表达式求值为true
时才返回true
。如果两个表达式中的一个求值为false
,则AND
运算符返回false
。
2.组合结果
- | TRUE | FALSE | NULL |
---|---|---|---|
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | FALSE |
NULL | NULL | FALSE | NULL |
二.OR
1.OR
运算符组合了两个或两个以上布尔表达式。当任一条件为真时,返回true
。
2.当您在语句中使用多个逻辑运算符时,MySQL会在AND
运算符之后再对OR
运算符进行求值。 这称为运算符优先级。
三.IN
1.IN运算符允许您确定指定的值是否与列表中的值或子查询中的任何值匹配。 下面说明了IN
操作符的语法。
2.例:
SELECT
column1,column2,...
FROM
table_name
WHERE
(expr|column_1) IN ('value1','value2',...);
- 可以在WHERE子句中与
IN
运算符一起使用,可使用列或表达式(expr
)。 - 列表中的值必须用逗号(
,
)分隔。 IN
操作符也可以用在其他语句(如INSERT,UPDATE,DELETE等)的WHERE子句中。
3.结果,如果column_1
的值或expr
表达式的结果等于列表中的任何值,则IN
运算符返回1
,否则返回0
。
四.BETWEEN
1.BETWEEN
运算符允许指定要测试的值范围。 我们经常在SELECT,INSERT,UPDATE和DELETE语句的WHERE子句中使用BETWEEN
运算符。
2.用法:
expr [NOT] BETWEEN begin_expr AND end_expr;
expr
是在由begin_expr
和end_expr
定义的范围内测试的表达式。
所有三个表达式:expr
,begin_expr
和end_expr
必须具有相同的数据类型。
如果expr
的值大于或等于(>=
)begin_expr
的值且小于等于(<=
)end_expr
的值,则BETWEEN
运算符返回true
,否则返回0
。
如果expr
的值小于(<
)begin_expr
的值或大于end_expr
的值的值,则NOT BETWEEN
将返回true
,否则返回0
。
如果任何表达式为NULL
,则BETWEEN
运算符返回NULL
值。
如果想指定一个不含边界值的范围,则使用大于(>
)和小于(<
)运算符。
五.LIKE
1.LIKE
操作符允许您根据指定的模式从表中查询选择数据。 因此,LIKE
运算符通常用在SELECT语句的WHERE子句中。
2.MySQL提供两个通配符,用于与LIKE
运算符一起使用,它们分别是:百分比符号 %
和下划线 _
- 百分比(
%
)通配符允许匹配任何字符串的零个或多个字符。 - 下划线(
_
)通配符允许匹配任何单个字符。
注:匹配的意思就是可以取代字符串中的一部分,例:A%表示以A开头的字符串,%on表示以on结尾的字符串,%bc%表示中间含bc的字符串。
3.MySQL允许将NOT
运算符与LIKE
运算符组合,以找到不匹配特定模式的字符串。
注:请注意,使用LIKE
运算符,该模式不区分大小写,因此,b%
和B%
模式产生相同的结果。
4.有时想要匹配的模式包含通配符,例如10%
,_20
等这样的字符串时。在这种情况下,您可以使用ESCAPE
子句指定转义字符,以便MySQL将通配符解释为文字字符。如果未明确指定转义字符,则反斜杠字符是默认转义字符。
如下语句,将查询productCode
字段中包含_20
字符串的值。
SELECT
productCode, productName
FROM
products
WHERE
productCode LIKE '%\_20%';
或者,也可以使用ESCAPE
子句指定一个不同的转义字符,例如$
:
SELECT
productCode, productName
FROM
products
WHERE
productCode LIKE '%$_20%' ESCAPE '$';//用escape替换,效果相同