逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或者NULL。MySQL中支持4种逻辑运算符如下:
image.png

逻辑非运算符

  • 逻辑非(NOT或!)运算符表示当给定的值为0时返回1;当给定的值为非0值时返回0;
  • 当给定的值为NULL时,返回NULL。

逻辑与运算符

  • 逻辑与(AND或&&)运算符是当给定的所有值均为非0值,并且都不为NULL时,返回1;
  • 当给定的一个值或者多个值为0时则返回0;
  • 否则返回NULL。

    逻辑或运算符

  • 逻辑或(OR或||)运算符是当给定的值都不为NULL,并且任何一个值为非0值时,则返回1,否则返回0;

  • 当一个值为NULL,并且另一个值为非0值时,返回1,否则返回NULL;
  • 当两个值都为NULL时,返回NULL。

    1 OR NULL = 1

注意: OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先 对AND两边的操作数进行操作,再与OR中的操作数结合。

逻辑异或运算符

  • 逻辑异或(XOR)运算符是当给定的值中任意一个值为NULL时,则返回NULL;
  • 如果两个非NULL的值都是0或者都不等于0时,则返回0;
  • 如果一个值为0,另一个值不为0时,则返回1。
  • 要求两个条件只满足一个。

运算符的优先级

image.png
从上往下优先级递增!
数字编号越大,优先级越高,优先级高的运算符先进行计算。可以看到,赋值运算符的优先级最低,使
用“()”括起来的表达式的优先级最高。