逻辑运算符又称为布尔运算符,用来确定表达式的真和假。MySQL中支持的逻辑运算符如下表所示。

MySQL 中的逻辑运算符

运算符作用

NOT 或者 !

逻辑非

AND 或者 &&

逻辑与

OR 和 ||

逻辑或

XOR

逻辑异或

下面分别讨论 MySQL 逻辑运算符的使用方法。

NOT和!都是逻辑非运算符,返回和操作数相反的结果,具体语法规则为:

当操作数为 0(假)时,返回值为 1;

当操作数为非零值时,返回值为 0;

当操作数为 NULL 时,返回值为 NULL。

【实例1】分别使用非运算符 NOT 或者 ! 进行逻辑判断,运行结果如下:

由运行结果可以看出,NOT 1+1和! 1+1的返回值不同,这是因为 NOT 与 ! 的优先级不同:

NOT 的优先级低于 +,因此NOT 1+1相当于NOT(1+1),先计算1+1,然后再进行 NOT 运算,由于操作数不为 0,因此NOT 1+1的结果是 0;

相反,! 的优先级别要高于 +,因此! 1+1相当于(!1)+1,先计算!1结果为 0,再加 1,最后结果为 1。

注意: 在使用运算符运算时,一定要注意运算符的优先级,如果不能确定计算顺序,最好使用括号,以保证运算结果的正确。

逻辑与运算符(AND 或者 &&)

AND 和 && 都是逻辑与运算符,具体语法规则为:

当所有操作数都为非零值并且不为 NULL 时,返回值为 1;

当一个或多个操作数为 0 时,返回值为 0;

操作数中有任何一个为 NULL 时,返回值为 NULL。

【实例2】分别使用与运算符 AND 和 && 进行逻辑判断,运行结果如下:

由结果可以看到,AND 和 && 的作用相同。1 AND-1中没有 0 或者 NULL,所以返回值为 1;1 AND 0中有操作数 0,所以返回值为 0;1 AND NULL虽然有 NULL,所以返回值为 NULL。

注意:AND 运算符可以有多个操作数,但要注意多个操作数运算时,AND 两边一定要使用空格隔开,不然会影响结果的正确性。

逻辑或运算符(OR 或者 ||)

当两个操作数都为非 NULL 值时,如果有任意一个操作数为非零值,则返回值为 1,否则结果为 0;

当有一个操作数为 NULL 时,如果另一个操作数为非零值,则返回值为 1,否则结果为NULL;

假如两个操作数均为 NULL 时,则返回值为 NULL。

【实例3】分别使用或运算符 OR 和 || 进行逻辑判断,运行结果如下:

由结果可以看到,OR 和 || 的作用相同。下面是对各个结果的解析:

1 OR -1 OR 0含有 0,但同时包含有非 0 的值 1 和 -1,所以返回结果为 1;

1 OR 2中没有操作数 0,所以返回结果为 1;

1 OR NULL虽然有 NULL,但是有操作数 1,所以返回结果为 1;

0 OR NULL中没有非 0 值,并且有 NULL,所以返回值为 NULL;

NULL OR NULL中只有NULL,所以返回值为NULL。

异或运算(XOR 运算符)

XOR 表示逻辑异或,具体语法规则为:

当任意一个操作数为 NULL 时,返回值为 NULL;

对于非 NULL 的操作数,如果两个操作数都是非 0 值或者都是 0 值,则返回值为 0;

如果一个为0值,另一个为非 0 值,返回值为 1。

【实例4】使用异或运算符 XOR 进行逻辑判断,SQL语句如下:

由结果可以看到:

1 XOR 1和0 XOR 0中运算符两边的操作数都为非零值,或者都是零值,因此返回 0;

1 XOR 0中两边的操作数,一个为 0 值,另一个为非 0 值,所以返回值为 1;

1 XOR NULL中有一个操作数为 NULL,所以返回值为 NULL;

1 XOR 1 XOR 1中有多个操作数,运算符相同,因此运算顺序从左到右依次计算,1 XOR 1的结果为 0,再与 1 进行异或运算,所以返回值为 1。

提示:a XOR b 的计算等同于 (a AND (NOT b))或者 ((NOT a) AND b)。

mysql 逻辑与_MySQL教程54-MySQL逻辑运算符相关推荐

  1. mySQL危险命令_MYSQL教程Linux系统中最危险的10条命令

    <MYSQL教程Linux系统中最危险的10条命令>要点: 本文介绍了MYSQL教程Linux系统中最危险的10条命令,希望对您有用.如果有疑问,可以联系我们. Linux命令行佷有用.很 ...

  2. mysql limit 菜鸟_MySQL之二---MySQL菜鸟入门“秘籍”

    一.MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不 ...

  3. mysql image类型_MyCat教程【mysql主从复制实现】

    原文:http://iii75.cn/mwQhBW 作者:波波烤鸭 历史相关文章 Mycat入门教程 单个mysql数据库在处理业务的时候肯定是有限的,这时我们扩展数据库的第一种方式就是对数据库做读写 ...

  4. MySQL数据库入门学习教程(mysql基础+高级)

    今天这篇文章将详细列出Mysql的学习流程,这是学习mysql数据库前你要了解的~~~ 大部分的小伙伴自己在网上找mysql资料.还有数据库的视频教程,但是都过于碎片化,没有体系,导致大家不知道如何系 ...

  5. mysql基础搭建_MySql基础-构建MySql数据库:安装MySql-server、MySql-client

    1 构建MySQL服务器 1.1 问题 本案例要求熟悉MySQL官方安装包的使用,快速构建一台数据库服务器: 安装MySQL-server.MySQl-client软件包 修改数据库用户root的密码 ...

  6. mysql二进制方式_MySQL数据库之MySql二进制连接方式详解

    本文主要向大家介绍了MySQL数据库之MySql二进制连接方式详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 使用mysql二进制方式连接 您可以使用MySQL二进制方式进 ...

  7. mysql数据库启动_MySQL数据库之Mysql启动的方式(四种)

    本文主要向大家介绍了MySQL数据库之Mysql启动的方式(四种) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 废话不多说了,直奔主题了. mysql的四种启动方式: 1.m ...

  8. mysql数据库建站教程视频,Mysql数据库基础入门(附视频教程)

    1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> CREATE DATABASE ...

  9. elastic如何和mysql同步数据_MySQL数据库之mysql 同步数据到 ElasticSearch 的方案

    本文主要向大家介绍了MySQL数据库之mysql 同步数据到 ElasticSearch 的方案 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL Binlog 要通过 ...

最新文章

  1. 利用802.11x协议实现动态vlan的划分
  2. python画函数图-Python 绘制你想要的数学函数图形
  3. 第一节 HTML DOM
  4. 51nod 1513-3的幂的和(费马小定理+快速幂)
  5. python可以用来编写计算机网络程序吗_不必熟悉python或R编程语言,6步执行计算机视觉应用程序...
  6. Vmware16一打开虚拟机就蓝屏
  7. oc73--NSArray使用
  8. 2019.7.22JS初始内容的整理以及4道题目
  9. 解决vue的所有相关问题集合
  10. 详解Oracle临时表的几种用法及意义
  11. 戴尔t40服务器接显示器,Dell PowerEdge T40 机架式服务器
  12. 群晖NAS系统DSM入门
  13. 绿城中国的数字化转型之大中台实践
  14. Lee滤波和Refine-Lee滤波
  15. mysql数据库应用试卷代号3868_实用数据库期末试卷B卷答题纸
  16. 前端交互之hover用法
  17. I love you
  18. 谷歌浏览器无法正常使用怎么办?Google浏览器无法正常使用的解决方法
  19. Linq之IQueryable与IEnumerable
  20. 8086-逻辑运算指令

热门文章

  1. Scala系列8:函数式编程之map,flatten,flatmap的使用详解
  2. HTML5初步标签学习1——H标签,P标签,Hr标签,img标签,br标签,a标签,base标签
  3. kali渗透测试:【实验2】一次简单的渗透测试实战
  4. 微信小程序实现购物车页面
  5. 磁盘IOPS测试指南
  6. linux上杀死进程命令:
  7. jquery实现上拉加载
  8. vdbench测试SSD快速入门
  9. IDEA中文乱码解决方法
  10. python字符串转十六进制