MySQL查询条件中的各种运算符/操作符说明

您所在的位置:网站首页 包含且不等于符号是什么 MySQL查询条件中的各种运算符/操作符说明

MySQL查询条件中的各种运算符/操作符说明

2024-06-27 00:13:20| 来源: 网络整理| 查看: 265

文章目录 一、比较运算符(一)正则表达式(二)模糊匹配 LIKE(三)转义字符 二、单行比较运算符(一)安全等号 1. 和 = 的相同点2. 和 = 的不同点 (二)区间运算符 between...and...(三)为空 is null(四)不为空 is not null(五)空字符串(六)二进制数比较 binary 三、多行比较运算符(一)> ALL(二)> ANY(三)在集合中 IN(四)不在集合中 NOT IN 四、算术运算符(一)除 /(二)求商 DIV(三)幂运算 power(四)取模 五、逻辑运算符(一)逻辑与(二)逻辑或(三)非(四)异或 六、位运算符(一)按位右移(二)按位异或(三)按位取反 七、运算符优先级

一、比较运算符

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

符号描述备注=等于binary二进制数比较例如,使用 = 比较时,前面加上 binary,则会比较两者的二进制数 或 !=不等于在 SQL 的一些版本中,该操作符可被写成 !=, 在任何 SQL 中都起作用,但是 != 在 sql2000 中则是语法错误,不兼容,推荐使用 。>大于=min && select 'beijing' regexp 'jing'; +-------------------------+ | 'beijing' regexp 'jing' | +-------------------------+ | 1 | +-------------------------+ 1 row in set (0.00 sec)

注:‘beijing’ 是被匹配的源字符串,‘jing’ 是正则表达式。

mysql> select 'beijing' regexp 'xi'; +-----------------------+ | 'beijing' regexp 'xi' | +-----------------------+ | 0 | +-----------------------+ 1 row in set (0.00 sec) (二)模糊匹配 LIKE % 表示匹配任意数量(包含 0 个)的任意字符,跟 like 配合使用_ 下划线表示匹配任意 1 字符 select * from emp_xxx where lower(job) like '%sales%'; select * from emp_xxx where job like '_a%'; (三)转义字符

查询表名以 S_ 开头的表的总数:

select count(*) from user_tables where table_name like 'S\_%' escape '\';

说明: _ 是特殊符号,需要转义成普通字符。如果要查询的数据中有特殊字符(比如 _ 或 %),在做模糊查询时,需要加上反斜杠 \ 符号表示转义,并且用 escape 短语指明转义符号 \。

二、单行比较运算符

单行比较运算符:>、=、 'a' NULL 'a' IS NOT NULL ==> NOT('a' NULL)

据此,你可以把下面的查询语句的条件改的更具移植性一点:

where t1.name is null (二)区间运算符 between…and… select * from emp_xxx where salary between 5000 and 10000; select * from emp_xxx where salary not between 5000 and 8000; (三)为空 is null select * from emp_xxx where bonus is null; (四)不为空 is not null select * from emp_xxx where bonus is not null; (五)空字符串

查询字段 bonus 为空串的所有记录信息:

select * from emp_xxx where bonus = ''; (六)二进制数比较 binary mysql> select binary 'b'='B'; +----------------+ | binary 'b'='B' | +----------------+ | 0 | +----------------+ 1 row in set (0.00 sec) mysql> select 'b'='B'; +---------+ | 'b'='B' | +---------+ | 1 | +---------+ 1 row in set (0.00 sec)

说明:使用 = 比较字符时,默认不区分大小写,所以小写 b 和大写 B,相等比较结果为真,返回 1;如果前面加上 binary,则是比较两者的二进制数,肯定是不同的,所以比较结果为假,返回 0。

三、多行比较运算符

多行比较运算符:> ALL、> ANY、< ALL、< ANY、IN,可以和多个值比较,后面可以跟着“多个值”

(一)> ALL select ename from emp_xxx where salary > ALL(500,1000,2500); (二)> ANY select ename from emp_xxx where salary > ANY(500,1000,2500); (三)在集合中 IN select * from emp_xxx where job in ('Manager' , 'Analyst'); (四)不在集合中 NOT IN select * from emp_xxx where depno not in (20 , 30);

注意: not in(列表)的列表中有 null 值 , 将没有结果返回,所以列表中不能含有 null,in(列表)则没有关系。

四、算术运算符 运算符作用+加法-减法*乘法/除法运算,商如果是小数,最多会保留小数点的后四位,且会四舍五入DIV除法运算,整除,商如果是小数,只保留整数部分,且不会四舍五入%求余MOD取模,余数和模数实际运算是有区别的,详见《求余和取模的计算公式》power幂运算、乘方运算

注意:

在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。加法运算时,若含有字符串,而字符串以数字开头,转换成数字,如下: mysql> select 1+'5a'; +--------+ | 1+'5a' | +--------+ | 6 | +--------+ 1 row in set, 1 warning (0.00 sec) 加法运算时,若含有字符串,而字符串以字母开头的,转换成 0,如下所示: mysql> select 1+'a5'; +--------+ | 1+'a5' | +--------+ | 1 | +--------+ 1 row in set, 1 warning (0.00 sec) (一)除 / mysql> select 8/3; +--------+ | 8/3 | +--------+ | 2.6667 | +--------+ (二)求商 DIV mysql> select 8 div 3; +---------+ | 8 div 3 | +---------+ | 2 | +---------+ 1 row in set (0.00 sec) (三)幂运算 power mysql> select power(2,3); +------------+ | power(2,3) | +------------+ | 8 | +------------+ 1 row in set (0.00 sec) (四)取模 mysql> select 10 MOD 4; +----------+ | 10 MOD 4 | +----------+ | 2 | +----------+ 五、逻辑运算符

逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回 1。如果表达式是假,结果返回 0。

运算符号作用NOT 或 !逻辑非AND 或 &&逻辑与OR 或 ||逻辑或XOR 或 ^逻辑异或 (一)逻辑与

&& 或者 AND 是“与”运算的两种表达方式。如果所有数据不为0且不为空值(NULL),则结果返回1;如果存在任何一个数据为0,则结果返回0;如果存在一个数据为NULL且没有数据为0,则结果返回NULL。“与”运算符支持多个数据同时进行运算。

mysql> select 2 and 0; +---------+ | 2 and 0 | +---------+ | 0 | +---------+ 1 row in set (0.00 sec) mysql> select 2 and 3; +---------+ | 2 and 3 | +---------+ | 1 | +---------+ 1 row in set (0.00 sec) (二)逻辑或

两者只要有一个数是大于 0 的,表达式就是真,返回 1。如下所示:

mysql> select 2 or 0; +--------+ | 2 or 0 | +--------+ | 1 | +--------+ mysql> select 0 or 0; +--------+ | 0 or 0 | +--------+ | 0 | +--------+ mysql> select 1 || 0; +--------+ | 1 || 0 | +--------+ | 1 | +--------+ mysql> select null or 1; +-----------+ | null or 1 | +-----------+ | 1 | +-----------+ (三)非 mysql> select not 1; +-------+ | not 1 | +-------+ | 0 | +-------+ mysql> select !0; +----+ | !0 | +----+ | 1 | +----+ (四)异或

两者的值相同,则表示假,返回 0;两者的值不同,则表示真,返回 1。这里的值是指 1 或者 0。

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 1 ^ 0; +-------+ | 1 ^ 0 | +-------+ | 1 | +-------+ 六、位运算符

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

运算符号作用&按位与|按位或^按位异或~按位取反右移 (一)按位右移 mysql> select 3>>1; +------+ | 3>>1 | +------+ | 1 | +------+ (二)按位异或 mysql> select 3^5; +-----+ | 3^5 | +-----+ | 6 | +-----+ (三)按位取反 mysql> select ~18446744073709551612; +-----------------------+ | ~18446744073709551612 | +-----------------------+ | 3 | +-----------------------+ 七、运算符优先级 优先级由低到高排列运算符1=(赋值运算)、:=2||、OR、XOR3&&、AND4NOT5BETWEEN、CASE、WHEN、THEN、ELSE6=(比较运算)、、>=、>、


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭