MySQL 内部运算符很丰富,主要有四大类:算术运算符、比较运算符、逻辑运算符和位操作运算符。
算术运算符
示例:
比较运算符
比较运算符的结果总是1、0 或者是 null。
等于运算符(=)
示例:
数值比较时有如下规则:
(1)若有一个或两个参数为 NULL,则比较运算的结果为 NULL。
(2)若同一个比较运算中的两个参数都是字符串,则按照字符串进行比较。
(3)若两个参数均为整数,则按照证书进行比较。
(4)若一个字符串和数字进行相等判断,则 MySQL 可以自动将字符串转换为数字。
安全等于运算符(<=>)
操作和 = 基本相同,就是 <=> 可以比较 NULL 值,当都是 NULL 的时候返回1,其中一个是 NULL 的时候返回0。
不等于运算符(<> 或者 !=)
不能用于 NULL 判断。
小于/大于等于运算符(<=)
不能用于 NULL 判断。
小于和大于运算符同上
IS NULL IS NOT NULL 运算符
BETWEEN AND 运算符
LEAST 运算符
再多参数的情况下返回最小值,有 NULL 则返回 NULL。
GREATEST(value1,value2,。。。)
再多参数的情况下返回最大值,有 NULL 则返回 NULL。
IN、NOT IN运算符
LIKE
LIKE 匹配条件,满足条件返回 1,不满足返回 0。
LIKE 可以用下面两个通配符:
(1)‘%’,匹配任何数目字符。
(2)‘_’,匹配一个字符。
REGEXP
匹配字符串,可以用以下几个通配符:
(1)“^”,匹配以该字符后面的字符开头的字符串。
(2)“$”,匹配以该字符后面的字符结尾的字符串。
(3)“.”,匹配任何一个单字符。
(4)“[...]”,匹配在方括号内的任何字符。
(5)“*”,匹配零个或多个在它前面的字符。
逻辑运算符
NOT 或者 !
AND 或者 &&
两个数非零,并且不会空,返回 1 ,有一个是 0 ,返回 0,有一个是 null, 返回 null。
OR 或者 ||
XOR
位运算符
位或运算符(|)
就是转成二进制进行或运算。
还有位与运算符(&)、位异或运算符(^)、位左移右移运算符(<< >>)和位取反操作符(~)都是跟位运算是一样的。就不过多就少了。
运算符的优先级
看下面这张表: