MySQL 中<=>用法(长知识)

2021年11月21日 阅读数:7
这篇文章主要向大家介绍MySQL 中<=>用法(长知识),主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
MySQL 运算符

本章节咱们主要介绍 MySQL 的运算符及运算符的优先级。 MySQL 主要有如下几种运算符:mysql

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 算术运算符
    MySQL 支持的算术运算符包括:
运算符做用+加法-减法*乘法/ 或 DIV除法% 或 MOD取余
  • 在除法运算和模运算中,若是除数为0,将是非法除数,返回结果为NULL。
    一、加
    mysql> select 1+2;+-----+ | 1+2 | +-----+ | 3 | +-----+
    二、减
    mysql> select 1-2;+-----+ | 1-2 | +-----+ | -1 | +-----+
    三、乘
    mysql> select 2*3;+-----+ | 2*3 | +-----+ | 6 | +-----+
    四、除
    mysql> select 2/3;+--------+ | 2/3 | +--------+ | 0.6667 | +--------+
    五、商
    mysql> select 10 DIV 4;+----------+ | 10 DIV 4 | +----------+ | 2 | +----------+
    六、取余
    mysql> select 10 MOD 4;+----------+ | 10 MOD 4 | +----------+ | 2 | +----------+

    比较运算符
    SELECT 语句中的条件语句常常要使用比较运算符。经过这些比较运算符,能够判断表中的哪些记录是符合条件的。比较结果为真,则返回 1,为假则返回 0,比较结果不肯定则返回 NULL。
符号描述备注=等于 <>, !=不等于 >大于 <小于 <=小于等于 >=大于等于 BETWEEN在两值之间>=min&&<=maxNOT BETWEEN不在两值之间 IN在集合中 NOT IN不在集合中 <=>严格比较两个NULL值是否相等两个操做码均为NULL时,其所得值为1;而当一个操做码为NULL时,其所得值为0LIKE模糊匹配 REGEXP 或 RLIKE正则式匹配 IS NULL为空 IS NOT NULL不为空 
  • 一、等于
    mysql> select 2=3;+-----+ | 2=3 | +-----+ | 0 | +-----+ mysql> select NULL = NULL; +-------------+ | NULL = NULL | +-------------+ | NULL | +-------------+
    二、不等于
    mysql> select 2<>3;+------+ | 2<>3 | +------+ | 1 | +------+
    三、安全等于
    与 = 的区别在于当两个操做码均为 NULL 时,其所得值为 1 而不为 NULL,而当一个操做码为 NULL 时,其所得值为 0而不为 NULL。
    mysql> select 2<=>3;+-------+ | 2<=>3 | +-------+ | 0 | +-------+ mysql> select null=null; +-----------+ | null=null | +-----------+ | NULL | +-----------+ mysql> select null<=>null; +-------------+ | null<=>null | +-------------+ | 1 | +-------------+
    四、小于
    mysql> select 2<3;+-----+ | 2<3 | +-----+ | 1 | +-----+
    五、小于等于
    mysql> select 2<=3;+------+ | 2<=3 | +------+ | 1 | +------+
    六、大于
    mysql> select 2>3;+-----+ | 2>3 | +-----+ | 0 | +-----+
    七、大于等于
    mysql> select 2>=3;+------+ | 2>=3 | +------+ | 0 | +------+
    八、BETWEEN
    mysql> select 5 between 1 and 10;+--------------------+ | 5 between 1 and 10 | +--------------------+ | 1 | +--------------------+
    九、IN
    mysql> select 5 in (1,2,3,4,5);+------------------+ | 5 in (1,2,3,4,5) | +------------------+ | 1 | +------------------+
    十、NOT IN
    mysql> select 5 not in (1,2,3,4,5);+----------------------+ | 5 not in (1,2,3,4,5) | +----------------------+ | 0 | +----------------------+
    十一、IS NULL
    mysql> select null is NULL;+--------------+ | null is NULL | +--------------+ | 1 | +--------------+ mysql> select 'a' is NULL; +-------------+ | 'a' is NULL | +-------------+ | 0 | +-------------+
    十二、IS NOT NULL
    mysql> select null IS NOT NULL;+------------------+ | null IS NOT NULL | +------------------+ | 0 | +------------------+ mysql> select 'a' IS NOT NULL; +-----------------+ | 'a' IS NOT NULL | +-----------------+ | 1 | +-----------------+
    1三、LIKE
    mysql> select '12345' like '12%';+--------------------+ | '12345' like '12%' | +--------------------+ | 1 | +--------------------+ mysql> select '12345' like '12_'; +--------------------+ | '12345' like '12_' | +--------------------+ | 0 | +--------------------+
    1四、REGEXP
    mysql> select 'beijing' REGEXP 'jing';+-------------------------+ | 'beijing' REGEXP 'jing' | +-------------------------+ | 1 | +-------------------------+ mysql> select 'beijing' REGEXP 'xi'; +-----------------------+ | 'beijing' REGEXP 'xi' | +-----------------------+ | 0 | +-----------------------+

    逻辑运算符
    逻辑运算符用来判断表达式的真假。若是表达式是真,结果返回 1。若是表达式是假,结果返回 0。
运算符号做用NOT 或 !逻辑非AND逻辑与OR逻辑或XOR逻辑异或
  • 一、与
    mysql> select 2 and 0;+---------+ | 2 and 0 | +---------+ | 0 | +---------+ mysql> select 2 and 1; +---------+ | 2 and 1 | +---------+ | 1 | +---------+
    二、或
    mysql> select 2 or 0;+--------+ | 2 or 0 | +--------+ | 1 | +--------+ mysql> select 2 or 1; +--------+ | 2 or 1 | +--------+ | 1 | +--------+ mysql> select 0 or 0; +--------+ | 0 or 0 | +--------+ | 0 | +--------+ mysql> select 1 || 0; +--------+ | 1 || 0 | +--------+ | 1 | +--------+
    三、非
    mysql> select not 1;+-------+ | not 1 | +-------+ | 0 | +-------+ mysql> select !0; +----+ | !0 | +----+ | 1 | +----+
    四、异或
    mysql> select 1 xor 1;+---------+ | 1 xor 1 | +---------+ | 0 | +---------+ mysql> select 0 xor 0; +---------+ | 0 xor 0 | +---------+ | 0 | +---------+ mysql> select 1 xor 0; +---------+ | 1 xor 0 | +---------+ | 1 | +---------+ mysql> select null or 1; +-----------+ | null or 1 | +-----------+ | 1 | +-----------+ mysql> select 1 ^ 0; +-------+ | 1 ^ 0 | +-------+ | 1 | +-------+

    位运算符
    位运算符是在二进制数上进行计算的运算符。位运算会先将操做数变成二进制数,进行位运算。而后再将计算结果从二进制数变回十进制数。
运算符号做用&按位与|按位或^按位异或!取反<<左移>>右移
  • 一、按位与
    mysql> select 3&5;+-----+ | 3&5 | +-----+ | 1 | +-----+
    二、按位或
    mysql> select 3|5;+-----+ | 3|5 | +-----+ | 7 | +-----+
    三、按位异或
    mysql> select 3^5;+-----+ | 3^5 | +-----+ | 6 | +-----+
    四、按位取反
    mysql> select ~18446744073709551612;+-----------------------+ | ~18446744073709551612 | +-----------------------+ | 3 | +-----------------------+
    五、按位右移
    mysql> select 3>>1;+------+ | 3>>1 | +------+ | 1 | +------+
    六、按位左移
    mysql> select 3<<1;+------+ | 3<<1 | +------+ | 6 | +------+

    运算符优先级
    最低优先级为: :=。
    MySQL 中<=>用法(长知识)_比较运算符
    最高优先级为: !、BINARY、 COLLATE。


非学,无以至疑;非问,无以广识sql