产品操作MySQL第7篇 – 运算符 - AND

MYSQL

本资料为产品岗位作为日常工作参考,语言口语化

At 2019/4/26 By David.Yang


运算逻辑

AND运算符可以相互组合多个,且只有在表达式都为TRUE是才返回最终满足条件的结果集。


WHERE

boolean_expression

AND

boolean_expression



AND运算符通常用在SELECT,UPDATE,DELETE语句的WHERE子句中以形成布尔表达式。


AND运算符也用于INNER JOIN或LEFT JOIN子句的连接条件。


AND特性

当使用AND运算符时,多个逻辑条件会被进行逐个计算,

直到其余运算部分算完会结果确定为止,称之为短路求值。


示例

-- FALSE AND NULL


SELECT 1 = 0 AND 1 / 0;

+-----------------+

| 1 = 0 AND 1 / 0 |

+-----------------+

|              0 |

+-----------------+

1 row in set (0.00 sec)


AND连接两部分运算逻辑,1 = 0 和 1 / 0


第一部分 1 = 0返回FALSE;

所以真个AND逻辑运算结果为NULL;


因为短路求值,MYSQL将不会再对剩余部分进行运算,1 / 0将不会进行求值;



-- TRUE AND NULL


SELECT 1 = 1 AND 1 / 0;

+-----------------+

| 1 = 1 AND 1 / 0 |

+-----------------+

|            NULL |

+-----------------+

1 row in set, 1 warning (0.00 sec)


1 = 1返回TRUE;

所以将会继续对1 / 0进行运算,运算结果为NULL,

所以真个AND逻辑运算结果为NULL;



-- TRUE AND TRUE


SELECT 1 = 1 AND 1 / 1;

+-----------------+

| 1 = 1 AND 1 / 1 |

+-----------------+

|               1 |

+-----------------+

1 row in set (0.01 sec)


1 = 1返回TRUE;

1/1返回TRUE;

所以真个AND逻辑运算结果为TRUE;



-- FALSE AND FALSE


SELECT 1 = 0 AND 0;

+-------------+

| 1 = 0 AND 0 |

+-------------+

|          0 |

+-------------+

1 row in set (0.00 sec)


1 = 0返回FALSE;

0返回FALSE;

所以真个AND逻辑运算结果为FALSE;


注:

0被认为是false,非零被视为true。


AND运算符演示

我们通过学生表,查询性别女性,来自南宋的学生

通过WHERE中的AND运算符来操作。


SQL

SELECT

 *

FROM

       students

WHERE

       gender = 1

AND

       nationality = "南宋";


条件过滤后的结果集如下


组合两个以上逻辑运算。

过滤出姑娘,来自南宋,而且年纪在14 – 16岁


SQL

SELECT

 *

FROM

       students

WHERE

       gender = 1

AND

       nationality = "南宋"

AND

       age >= 14

AND

       age <= 16;




本篇主要在于对AND运算符的运算机制进行讲解,

帮助你明白AND运算时时如何工作的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本资料为产品岗位作为日常工作参考,语言口语化 At 2019/4/26 By David.Yang 运算逻辑 OR...
    杨呀阅读 885评论 1 50
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,952评论 0 38
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 723评论 0 0
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,857评论 5 116
  • 一. Java基础部分.................................................
    wy_sure阅读 3,846评论 0 11