https://www.runoob.com/mysql/mysql-operator.html

MySQL 运算符

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

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 算术运算符

    MySQL 支持的算术运算符包括:

    运算符 作用
    + 加法
    - 减法
    * 乘法
    / 或 DIV 除法
    % 或 MOD 取余

    在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。

    1、加

    mysql> select 1+2;
    +-----+
    | 1+2 |
    +-----+
    | 3 |
    +-----+

    2、减

    mysql> select 1-2;
    +-----+
    | 1-2 |
    +-----+
    | -1 |
    +-----+

    3、乘

    mysql> select 2*3;
    +-----+
    | 2*3 |
    +-----+
    | 6 |
    +-----+

    4、除

    mysql> select 2/3;
    +--------+
    | 2/3 |
    +--------+
    | 0.6667 |
    +--------+

    5、商

    mysql> select 10 DIV 4;
    +----------+
    | 10 DIV 4 |
    +----------+
    | 2 |
    +----------+

    6、取余

    mysql> select 10 MOD 4;
    +----------+
    | 10 MOD 4 |
    +----------+
    | 2 |
    +----------+

    比较运算符

    SELECT 语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。

    符号 描述 备注
    = 等于  
    <>, != 不等于  
    > 大于  
    < 小于  
    <= 小于等于  
    >= 大于等于  
    BETWEEN 在两值之间 >=min&&<=max
    NOT BETWEEN 不在两值之间  
    IN 在集合中  
    NOT IN 不在集合中  
    <=> 严格比较两个NULL值是否相等 两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0
    LIKE 模糊匹配  
    REGEXP 或 RLIKE 正则式匹配  
    IS NULL 为空  
    IS NOT NULL 不为空  

    1、等于

    mysql> select 2=3;
    +-----+
    | 2=3 |
    +-----+
    | 0 |
    +-----+ mysql> select NULL = NULL;
    +-------------+
    | NULL = NULL |
    +-------------+
    | NULL |
    +-------------+

    2、不等于

    mysql> select 2<>3;
    +------+
    | 2<>3 |
    +------+
    | 1 |
    +------+

    3、安全等于

    与 = 的区别在于当两个操作码均为 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 |
    +-------------+

    4、小于

    mysql> select 2<3;
    +-----+
    | 2<3 |
    +-----+
    | 1 |
    +-----+

    5、小于等于

    mysql> select 2<=3;
    +------+
    | 2<=3 |
    +------+
    | 1 |
    +------+

    6、大于

    mysql> select 2>3;
    +-----+
    | 2>3 |
    +-----+
    | 0 |
    +-----+

    7、大于等于

    mysql> select 2>=3;
    +------+
    | 2>=3 |
    +------+
    | 0 |
    +------+

    8、BETWEEN

    mysql> select 5 between 1 and 10;
    +--------------------+
    | 5 between 1 and 10 |
    +--------------------+
    | 1 |
    +--------------------+

    9、IN

    mysql> select 5 in (1,2,3,4,5);
    +------------------+
    | 5 in (1,2,3,4,5) |
    +------------------+
    | 1 |
    +------------------+

    10、NOT IN

    mysql> select 5 not in (1,2,3,4,5);
    +----------------------+
    | 5 not in (1,2,3,4,5) |
    +----------------------+
    | 0 |
    +----------------------+

    11、IS NULL

    mysql> select null is NULL;
    +--------------+
    | null is NULL |
    +--------------+
    | 1 |
    +--------------+ mysql> select 'a' is NULL;
    +-------------+
    | 'a' is NULL |
    +-------------+
    | 0 |
    +-------------+

    12、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 |
    +-----------------+

    13、LIKE

    mysql> select '12345' like '12%';
    +--------------------+
    | '12345' like '12%' |
    +--------------------+
    | 1 |
    +--------------------+ mysql> select '12345' like '12_';
    +--------------------+
    | '12345' like '12_' |
    +--------------------+
    | 0 |
    +--------------------+

    14、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 逻辑异或

    1、与

    mysql> select 2 and 0;
    +---------+
    | 2 and 0 |
    +---------+
    | 0 |
    +---------+ mysql> select 2 and 1;
    +---------+
    | 2 and 1 |
    +---------+
    | 1 |
    +---------+

    2、或

    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 |
    +--------+

    3、非

    mysql> select not 1;
    +-------+
    | not 1 |
    +-------+
    | 0 |
    +-------+ mysql> select !0;
    +----+
    | !0 |
    +----+
    | 1 |
    +----+

    4、异或

    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 |
    +-------+

    位运算符

    位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

    运算符号 作用
    & 按位与
    | 按位或
    ^ 按位异或
    ! 取反
    << 左移
    >> 右移

    1、按位与

    mysql> select 3&5;
    +-----+
    | 3&5 |
    +-----+
    | 1 |
    +-----+

    2、按位或

    mysql> select 3|5;
    +-----+
    | 3|5 |
    +-----+
    | 7 |
    +-----+

    3、按位异或

    mysql> select 3^5;
    +-----+
    | 3^5 |
    +-----+
    | 6 |
    +-----+

    4、按位取反

    mysql> select ~18446744073709551612;
    +-----------------------+
    | ~18446744073709551612 |
    +-----------------------+
    | 3 |
    +-----------------------+

    5、按位右移

    mysql> select 3>>1;
    +------+
    | 3>>1 |
    +------+
    | 1 |
    +------+

    6、按位左移

    mysql> select 3<<1;
    +------+
    | 3<<1 |
    +------+
    | 6 |
    +------+

    运算符优先级

    最低优先级为: :=。

    最高优先级为: !、BINARY、 COLLATE。

MySQL 中<=>用法(长知识)的更多相关文章

  1. MySQL中的基本知识

    本文是MySQL中的一些基本知识,包括各种基本操作.数据类型和表的约束等. ps:都是自己总结.手打出来的,虽然不是什么新东西,但也勉强算原创吧.. 一.数据库 1.创建:CREATE DATABAS ...

  2. 批量 kill mysql 中运行时间长的sql

    1.通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令 mysql> select conc ...

  3. mysql中包含长字段索引的优化

    不同于oracle,在mysql的Innodb存储引擎中,对索引的总长度有限制.在mysql 5.7中(https://dev.mysql.com/doc/refman/5.7/en/innodb-r ...

  4. round函数在oracle和mysql中用法

    1.oracle和mysql通用方法 #round(字段1,小数位数) 四舍五入select round('11.123456',4);结果:11.1235 2.mysql的另外2种保留小数位数方法# ...

  5. (转)批量 kill mysql 中运行时间长的sql

    mysql> show full processlist; +--------+------+---------------------+------+---------+------+---- ...

  6. MySql中的事务、JDBC事务、事务隔离级别

    一.MySql事务 之前在Oracle中已经学习过事务了,这个东西就是这个东西,但是在MySql中用法还是有一点不同,正好再次回顾一下. 先看看MySql中的事务,默认情况下,每执行一条SQL语句,都 ...

  7. mysql中的日期转换函数(类似oracle中的to_date)

    最近使用mysql开发一个项目,发现没有像之前在用oracle数据中那样有to_date方法.mysql中实现日期格式化的方法为date_to_str('日期字符串','日期格式'),而且mysql中 ...

  8. mysql 中合并查询结果union用法 or、in与union all 的查询效率

    mysql 中合并查询结果union用法 or.in与union all 的查询效率 (2016-05-09 11:18:23) 转载▼ 标签: mysql union or in 分类: mysql ...

  9. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

随机推荐

  1. arcgis js之地图分屏同步

    arcgis js之地图分屏同步 原理: 新建两个map两个view或者一个map两个view.对地图进行移动事件绑定,在地图移动时同步地图方位 代码: views.forEach((view) =& ...

  2. 使用SSH命令行远程登录运行在CloudFoundry上的应用

    当我试图用如下命令行采用SSH远程登录到运行在CloudFoundry环境下的应用时, cf ssh -N -T -L 9229:127.0.0.1:9229 jerry-demo-server 遇到 ...

  3. 使用nodejs对Marketing Cloud的contact主数据进行修改操作

    假设在Marketing Cloud有这样一个contact主数据: 现在需求是使用编程语言比如nodejs修改这个contact实例的高亮属性. 代码如下: var config = require ...

  4. Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务

    上一篇文章,讲了SpringCloudConfig 集成Git仓库,这一篇我们讲一下SpringCloudConfig 配和 Eureka 注册中心一起使用 在分布式系统中,由于服务数量巨多,为了方便 ...

  5. RabbitMQ的交换机类型(三)

      RabbitMQ的交换机类型共有四种,是根据其路由过程的不同而划分成的 分别是Direct Exchange(直连交换机), Fanout Exchange(扇型交换机), Topic Excha ...

  6. 【Distributed】大型网站高并发和高可用

    一.DNS域名解析 二.大型网站系统应有的特点 三.网站架构演变过程 3.1 传统架构 3.2 分布式架构 3.3 SOA架构 3.4 微服务架构 四.高并发设计原则 4.1 拆分系统 4.2 服务化 ...

  7. ELK 错误: retrying failed action with response code: 403, kibana无log显示

    今天10点时候同事报出kibana突然不显示log了,开始紧急排查 1. 从数据源头查起,先看被filebeat监视的log文件是否在更新(一般只要log对应服务在正常运行,log文件中就会有数据持续 ...

  8. Flutter——Container组件(容器组件)

    名称 功能 alignment topCenter:顶部居中对齐 topLeft:顶部左对齐 topRight:顶部右对齐 center:水平垂直居中对齐 centerLeft:垂直居中水平居左对齐 ...

  9. Java入门第二季——Java中的this关键字

    如果想访问一个private属性,通常会使用setter和getter方法来操作属性,属性名经常会与参数名相同,我们为了区分属性和参数的概念,我们会在属性前面加上this关键字,此时代表我将一个参数的 ...

  10. python_tkinter组件摆放方式

    1.最小界面组成 # 导入tkinter模块 import tkinter # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(30 ...