Mysql 运算符

一.AND

1.AND运算符是组合两个或多个布尔表达式的逻辑运算符,只有当两个表达式求值为true时才返回true。如果两个表达式中的一个求值为false,则AND运算符返回false

2.组合结果

-TRUEFALSENULL
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操作符也可以用在其他语句(如INSERTUPDATEDELETE等)的WHERE子句中。

3.结果,如果column_1的值或expr表达式的结果等于列表中的任何值,则IN运算符返回1,否则返回0

四.BETWEEN

1.BETWEEN运算符允许指定要测试的值范围。 我们经常在SELECTINSERTUPDATEDELETE语句的WHERE子句中使用BETWEEN运算符。

2.用法:

expr [NOT] BETWEEN begin_expr AND end_expr;
SQL

expr是在由begin_exprend_expr定义的范围内测试的表达式。

所有三个表达式:exprbegin_exprend_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替换,效果相同
 
原文地址:https://www.cnblogs.com/zhouqianwei/p/8858298.html