MYSQL之中的比较函数和操作符:

1、[NOT] BETWEEN ... AND ...  Check whether a value is within a range of values

说明:expr between min and max

  如果expr大于或等于表达式是否小于或等于最大和最小之间,返回1,否则返回0。
  如果所有参数的类型相同,这相当于表达式(min<=expr和expr<=max)。否则会进行相应的类型转换。
  

mysql> SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;
-> 1, 0
mysql> SELECT 1 BETWEEN 2 AND 3;
-> 0
mysql> SELECT 'b' BETWEEN 'a' AND 'c';
-> 1
mysql> SELECT 2 BETWEEN 2 AND '3';
-> 1
mysql> SELECT 2 BETWEEN 2 AND 'x-3';
-> 0

  

 

2、COALESCE(value1,...) :返回第一个非NULL的参数

  说明:返回列表中第一个非空值,如果没有非NULL值,则返回NULL。

 

mysql> SELECT COALESCE(NULL,1);
-> 1
mysql> SELECT COALESCE(NULL,NULL,NULL);
-> NULL 

3、GREATEST(value1,value2,...)

  说明:返回参数列表中最大的参数

mysql> SELECT GREATEST(2,0);
-> 2
mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
-> 767.0
mysql> SELECT GREATEST('B','A','C');
-> 'C'

4、[not] IN() -- 检查值是否在数据集中

  说明:expr IN (value,...); 如果expr等于values列表中的任何一个值则返回true,否则返回false;

  如果value列表全是常数,mysql会根据expr的类型进行排序,然后进行二进制查找,这样非常快速。

mysql> SELECT 2 IN (0,3,5,7);
-> 0
mysql> SELECT 'wefwf' IN ('wee','wefwf','weg');
-> 1

  尽量不要在一个列表中混合使用引用和未加引号的值,因为比较引用值的规则(如字符串)和未加引号的值(如数字)不同。因此,混合类型可能导致不一致的结果。例如,不要写一个这样的表达:

错误的写法:
SELECT val1 FROM tbl1 WHERE val1 IN (1,2,'a'); 正确的写法:
SELECT val1 FROM tbl1 WHERE val1 IN ('1','2','a');

5、 ISNULL(expr)

  说明:如果expr为NULL,返回1,否则返回 0;

mysql> SELECT ISNULL(1+1);
-> 0
mysql> SELECT ISNULL(1/0);
-> 1

5.1、IS NULL: 测试值是否为NULL

mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
-> 0, 0, 1

5.2、<=>

  说明:该操作符是安全的NULL比较符号,此运算符执行相等比较类似=运算符,但如果两个操作数为NULL,而不是NULL,则返回1,如果一个操作数为NULL返回0,而不是NULL。

  

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
-> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
-> 1, NULL, NULL

5.3、 IS boolean value

  说明:测试值是否为boolean值,boolean的值可以是TRUE,FALSE或者UNKNOW

mysql> SELECT 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;
-> 1, 1, 1

6、INTERVAL(N,N1,N2,...)

  说明:N < N1返回0,N < N2返回1,一次类推。如果N为NULL返回-1.所有的参数作为整数看待,要求参数满足N1<N2<...<Nn,这样能够快速的进行这版查找

mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);
-> 3
mysql> SELECT INTERVAL(10, 1, 10, 100, 1000);
-> 2
mysql> SELECT INTERVAL(22, 23, 30, 44, 200);
-> 0

7、LEAST(value1,value2,...)

  说明:返回value列表中的最小值。

  如果所有的参数都是NULL,则结果也是NULL,不需要进行比较

  如果所有参数都是整数,则会返回一个整数,进行整数比较

  如果所有参数是实数,则返回一个实数,进行实数比较

  如果参数是由 数字和字符串构成,参数将作为数字进行比较

  如果所有参数都是非二进制的字符串,则作为非二进制字符计较

  其它情况,将参数统统作为二进制比较

mysql> SELECT LEAST(2,0);
-> 0
mysql> SELECT LEAST(34.0,3.0,5.0,767.0);
-> 3.0
mysql> SELECT LEAST('B','A','C');
-> 'A'
mysql> select least(10,'a')
-> 0

mysql 比较函数和操作符的更多相关文章

  1. 如何理解 MySQL 中的 <=> 操作符?

    问题 : 我在看以前的一个开发者的代码时看到 WHERE p.name <=> NULL 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊? ...

  2. MySql 中的<=>操作符

    今天在学习数据库的索引优化时,关于memory存储引擎的的hash索引时,看到了操作符<=> ,这个操作符还是第一次见到,于是上网查了一下.我想大家应该知道 =  !=   <> ...

  3. 七:MYSQL之常用操作符

    前言: 运算符连接表达式中各个操作数,其作用是用来指明对操作数所进行的运算. 常见的运算有数学计算.比较运算.位运算及逻辑运算 一:算数运算符 用于各类数值运算.包括加(+).减(-).乘(*).除( ...

  4. mysql函数和操作符

    mysql,); //取模函数 +-----------+ ,) | +-----------+ | +-----------+ row in set (0.00 sec) mysql,); +--- ...

  5. SqlServer与MySql的一些常用用法的差别

    最近学习了一下mySql,总结一下SqlServer不同一些用法: 操作符优先级以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符具有相同的优先级.:=||, OR, XOR&& ...

  6. mysql 基本使用教程(源于网络)

    http://dev.mysql.com/doc/refman/5.1/zh/index.html 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择 ...

  7. MySQL 5.1参考手册

    目录 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. My ...

  8. Mysql Json函数之搜索 (三)

    本节中的函数对JSON值执行搜索操作,以从其中提取数据,报告数据是否在其中的某个位置或报告其中的数据的路径. JSON_CONTAINS(target, candidate[, path]) 通过返回 ...

  9. MySQL(七)MySQL常用函数

    前言 上一篇给大家介绍了,MySQL常用的操作符其实已经是非常的详细了,现在给大家分享的是MySQL的常用函数.希望对我和对大家都有帮助. 一.字符串函数 1.1.LOWER.lcase(string ...

随机推荐

  1. SpringBoot-定制banner

    我们在启动Spring Boot项目的时候,在控制台会默认输出一个启动图案 这个图案如果你需要的话是可以自己修改的,修改方式很简单 1.在src/main/resources下新建一个banner.t ...

  2. vue组件库(一):前期准备工作

    前言 将近期项目内自行开发一个vue组件,做个总结,记录下自己的思维过程~~~ 正文 接到这个任务后,还是要做些准备工作的. 主要内容如下: 1.优化下所在团队前端开发流程 服务器搭建gitlab,采 ...

  3. 通过微信Android和iOS版,看两大系统的差异

    由于设计师或者产品经理使用的移动设备大部分是iPhone,所以在做设计时,容易忽略Android和iOS的差异,按照自己的使用习惯进行设计,导致大部分设计师或产品经理做出的设计都是基于iOS规范或习惯 ...

  4. .NetCore利用Swagger生成 XML文档需要注意生成路径的地址

    发布的时候如果用 release dotnet publish --configuration release dotnet publish 默认都是debug 会出现 XML丢失问题,其实可以看下工 ...

  5. Codeforces 711E ZS and The Birthday Paradox 数学

    ZS and The Birthday Paradox 感觉里面有好多技巧.. #include<bits/stdc++.h> #define LL long long #define f ...

  6. Floyd求最小环!(转载,非原创) 附加习题(原创。)HDU-1599

    //Floyd 的 改进写法可以解决最小环问题,时间复杂度依然是 O(n^3),储存结构也是邻接矩阵 int mincircle = infinity; Dist = Graph; ;k<nVe ...

  7. SpringBoot与SpringCloud学习指南

    推荐一个Spring Boot的导航网站:Spring Boot 中文导航 Spring boot使用的各种示例,以最简单.最实用为标准 spring-boot-helloWorld:spring-b ...

  8. windows下elasticsearch启动

    windows下启动elasticsearch,依赖于配置好JAVA_HOME D:\Program Files\Java\jdk1.7.0_71 命令行启动elasticsearch.bat即可实现 ...

  9. RelativeLayout 高度宽度

    RelativeLayout ss = (RelativeLayout) findViewById(R.id.myRelativeLayout); ss.setLayoutParams(new Rel ...

  10. 使用 IntraWeb (4) - 页面布局之 TIWRegion

    TIWRegion 是容器, 首先布局好它(们). 在空白窗体上添加 4 个 TIWRegion, 然后: uses System.UITypes; //为使用 Anchors 属性 {下面代码中的设 ...