mysql 中的运算符

比较运算符
除了一般的的比较运算符,还包括IN,IS NULL,BETWEEN AND,GREATEST,LEAST,LIKE,REGEXP.
逻辑运算符
NOT ! 非
AND && 与
OR || 或
XOR 异或
位操作运算符
& 与
| 或
~ 位非
^ 位异或
>> 右移
<< 左移

运算符
在执行运算时,除法0不能作为除数,所以当除以0的时候,返回的结果为空。

比较运算符
<==> 为安全等于
<> 为不等于
LEAST 多个参数时,返回最小值
GREATEST 多个参数时,返回最大值
BETWEEN 判断一个值是否在两个值之间
LIKE 通配符匹配
REGEXP 正则表达式

=运算比较时,有一个或者两个为NULL的时候,结果为NULL
在字符串与数字比较的时候,字符串转为数字

<==> 可以来判断NULL,当两个都是NULL的时候,结果为1,有一个为NULL则为0
<,<=,>,>=等运算符都不能判断空值。

BETWEEN AND
expr BETWEEN min AND max
如果expr大于min小于max则返回1

LEAST
LEAST(值1,值2......值n)
返回最小的数,字母则按照字母的字母表顺序,NULL直接返回NULL

GREATEST
与LEAST 相反,返回最大值

LIKE
expr LIKE 匹配条件
expr满足匹配条件,则返回1
% 匹配任意数目的字符,甚至包括零字符。
_ 只能匹配一个字符。
例如:

mysql> select 'stud' LIKE 'stud','stud' like 'stu','stud' like '%d','stud' like 't_ _ _','s' like NULL;

+--------------------+-------------------+------------------+----------------------+---------------+
| 'stud' LIKE 'stud' | 'stud' like 'stu' | 'stud' like '%d' | 'stud' like 't_ _ _' | 's' like NULL |
+--------------------+-------------------+------------------+----------------------+---------------+
|                  1 |                 0 |                1 |                    0 |          NULL |
+--------------------+-------------------+------------------+----------------------+---------------+
1 row in set (0.46 sec)

stud与stud相等,返回1,stud包含stu,全部匹配,返回1,stud的结尾为d,返回1,而stud开头不是t,匹配失败,返回0,NULL 存在,返回NULL.

REGEXP
expr REGEXP 匹配条件
^ 匹配该字符后的字符
$ 匹配该字符前面的字符
. 匹配任何一个单字符
[…] 匹配括号内的字符
* 匹配一个或者多个*前面的字符

mysql> select 'ssky' REGEXP '^s','ssky' regexp 'y$','ssky' regexp '.sky','ssky' regexp '[ab]';
+--------------------+--------------------+----------------------+----------------------+
| 'ssky' REGEXP '^s' | 'ssky' regexp 'y$' | 'ssky' regexp '.sky' | 'ssky' regexp '[ab]' |
+--------------------+--------------------+----------------------+----------------------+
|                  1 |                  1 |                    1 |                    0 |
+--------------------+--------------------+----------------------+----------------------+

.sky匹配任意‘sky’结尾,返回1,a和b都不在’ssky‘中,所以返回0

OR || 运算
非0与NULL进行or运算,结果为1,否则为0,NULL OR NULL 为NULL

异或 xor
相同为0,不同为1

优先级由低到高

优先级运算符
1=(赋值运算),:=
2||,OR
3XOR
4&&,AND
5NOT
6BETWEEN,CASE,WHILE,THEN,ELSE
7=(比较运算),<=>,>=,<=,<,<>,!=,IS,LIKE,REGEXP,IN
8|
9&
10<<,>>
11-,+
12*,/,%
13^
14-(负号),~(按位取反)
15

注:在mysql中字母比较是不区分大小写的,但是想要执行大小写比较,可以通过在关键字前加BINARY

mysql> SELECT 'a'='A';
+---------+
| 'a'='A' |
+---------+
|       1 |
+---------+

mysql> SELECT BINARY'a'='A';
+---------------+
| BINARY'a'='A' |
+---------------+
|             0 |
+---------------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值