运算符包括四类,分别是:算数运算符、比较运算符、逻辑运算符和位运算符
Mysql可以通过运算符来对表中数据进行运算,比如通过出生日期求年龄等
1、算术运算符
加、减、乘、除法和取模运算
准备工作:创建表 tmp,定义数据类型int的字段a,插入数值64,对a值进行算术运算。
> create table tmp(a int);
> insert into tmp values(64);
1.1 加减法
> select a, a+10, a-3+5 from tmp;
1.2 乘法、除法和求模
> select a, a*2, a/2, a/3, a%3 from tmp;
1.3 关于0的除法和求模
> select a, a/0, a%0 from tmp;
注意:除法也可以用 div,mod
2、比较运算符
2.2 数值比较
> select a,a=24,a<12,a>40,a>=24,a<=24,a!=24,a<>24,a<=>24 from tmp;
或者> select 2=3, 3>4, 5<7,6<=>6; (也可以是算式)
这里的1代表真,0代表假,需要说明的是<>和<=>
<>代表不等于,等同于!=
<=>代表等于,等同于=
此外,等于和不等于不仅可以比较数值,还能比较字符串
2.2 字符串比较
> select 'a'='a', 'a'<>'b','good'!='god','god'!='GOD';
2.3 is null 和 is not null
> select a is null, a is not null from tmp;
这里可以判断是否为空,NULL也可以跟NULL比较
2.4 between and和not between and
between and 和not between and可以判断数值是否在某一区间内
> select a, a between 60 and 100 from tmp;
或者> select 3 between 50 and 60;
2.5 in 和 not in
> select a, a in(64,68) from tmp;
判断操作数是否在某一集合内
2.6 like
like可以用来匹配字符串,_代表单个字符,%代表多个字符
> select 'stud'like 'stud', 'stud' like 'stu_','stud'like '%d', 'stud' like 't___', 's'like null;
2.7 regexp(正则表达式)
Regexp运算符用来匹配字符串
> select 'ssky' regexp '^s', 'ssky' regexp 'y$';
> select 'ssky' regexp '[ab]', 'ssky' regexp '[kc]';
3、 逻辑运算符
3.1 与运算
> select 2&&2,2&&null,2 and 3,2 and 2;
这里&&和and意思一样,所有操作数不为0且不为NULL时,结果返回1.
3.2 或运算
> select 2||2,2||null,2 or 3,2 or 0;
这里||和or的意思一样,所有操作数中存在任何一个操作数不为0,结果返回1.
3.3 非运算
> select !1,!2,!null;
4、位运算符
4.1 位与
mysql> select 2&3,bin(2&3);
注:2的二进制是10, 3的二进制是11,bin将十进制转换为二进制。
mysql> select 2&3&4;
4.2 位或
mysql> select 2|3;
4.3 位异或
mysql> select 2^3,bin(2^3); (相同的数异或后为0,不同的数异或后的结果为1)
4.4 位取反
mysql> select ~4,~18446744073709551614,bin(~4);
4.5 位右移
mysql> select bin(100),100>>3, bin(100>>3);
4.6 位左移
mysql> select bin(100),100<<3, bin(100<<3);
Comments