前言
看了关于MySQL运算符的视频,记录下学习笔记。
MySQL算数运算符
+ #加
- #减
* #乘
/ #除
% #取余
MySQL比较运算符
相等
SELECT 5 = 5;#结果为:1;
SELECT 'hello' = 'hello'; #结果为:1;
SELECT 'HELLO' = 'hello'; #结果为:1;
SELECT BIANRY 'HELLO' = 'hello'; #结果为:0;
↑ 字符的比较不区分大小写,想要区分大小写加 bianry 关键字
SELECT 'hello' = 'hello '; #结果为:1;
↑ 字符串后面的空格或者换行符会被忽略掉
SELECT null = 1; #结果为:null;
↑ 有null参与的运算都返回null
SELECT null = null; #结果为:null;
↑ 即使是 null = null 也返回null;想要判断是否为null可以用<=>
不等
SELECT 1 != 1; #结果为:0;
大于,小于
SELECT 5 > 6; #结果为:0;
SELECT 'a' > 'b'; #结果为:0;
↑ 字符是按照在在字母表的顺序比较的,越靠后越大
大于等于,小于等于
…
null安全的比较运算符
SELECT null <=> null; #结果为:1;
是否在范围之间(between…and)
SELECT 'b' BETWEEN 'a' AND 'C'; #结果为:1;
是否在集合里(in)
SELECT 5 IN (1 , 2 , 3 , 4 , 5); #结果为:1;
SELECT null IN (1 , 2 , 3 , 4 , 5 , null); #结果为:null;
↑ null在in运算里无法正确处理,始终返回null
是否为null(is null)
SELECT 1 IS NULL; #结果为:0;
匹配(like)
SELECT 'hello' LIKE 'h%'; #结果为:1;
% 是通配符,代表任意数量的任意字符
_ 也是通配符,代表任意的一个字符
正则表达式匹配(regexp)
SELECT 'hello world' REGEXP 'h.*o\\b'; #结果为:1;
↑ 注意:在MySQL的正则表达式里所有的 \ 必须要双写()
rilke(与regexp差不多)
…
MySQL逻辑运算符
取反(not / !)
SELECT NOT 1; #结果为:0;
↑ 在MySQL里,布尔值用tinyint(1)表示,0为false,1为true
且(and / &&)
SELECT 2 > 1 && 3 >2; #结果为:1;
↑ 当两个条件全部为真时才返回真;只要有一者为假就返回假
或(or / ||)
SELECT 2>1 || 3>5; #结果为:1;
↑ 只要有一个条件为真就返回真;两个条件都为假时才返回假
异或(xor)
SELECT 2>1 XOR 3>5; #结果为:1;
↑ 两个条件的结果不相等,即为一真一假时才返回真;两者同为真或两者同为假时返回假
MySQL位运算符
省略,暂时用不上