每种数据库都支持 SQL 语句,但是它们也都有各自支持的运算符。MySQL 所提供的运算符可以直接对表中数据或字段进行运算,共有4 种运算符:算术运算符、 比较运算符、逻辑运算符和位运算符。
算术运算符
| 运算符 | 用途 | 
|---|---|
| + | 加法 | 
| - | 减法 | 
| * | 乘法 | 
| / 或 DIV | 除法 | 
| % 或 MOD | 取余 | 
例如:update user set age=age+1;
比较运算符
| 运算符 | 用途 | 
|---|---|
| = | 等于 | 
| <>, != | 不等于 | 
| > | 大于 | 
| < | 小于 | 
| <= | 小于等于 | 
| >= | 大于等于 | 
| BETWEEN 在两值之间 >=min&&<=max | |
| NOT BETWEEN | 不在两值之间 | 
| IN | 在集合中 | 
| NOT IN | 不在集合中 | 
| <=> | 严格比较两个NULL值是否相等 | 
| LIKE | 模糊匹配 | 
| REGEXP 或 RLIKE | 正则式匹配 | 
| IS NULL | 为空 | 
| IS NOT NULL | 不为空 | 
例如:select * from user where age between 20 and 22;
 select * from user where score in (99.0 100.0);
 select * from user where name like ‘zhang%’(全匹配);
 select * from user where name like ‘zhang_’(只匹配一个字符);
逻辑运算符
| 运算符 | 用途 | 
|---|---|
| NOT 或 ! | 逻辑非 | 
| AND | 逻辑与 | 
| OR | 逻辑或 | 
| XOR | 逻辑异或 | 
例如:select * from user where sex=‘W’ and score>=90;
位运算符
| 运算符 | 用途 | 
|---|---|
| & | 按位与 | 
| ^ | 按位异或 | 
| ! | 取反 | 
| << | 左移 | 
| >> | 右移 | 
| 位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。 | 
优先级
运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,一般情况下,级别高的运算符优先进行计算,如果级别相同,MySQL 按表达式的顺序从左到右依次计算,在无法确定优先级的情况下,可以使用圆括号“()”来改变优先级。
| 由低到高 | 运算符 | 
|---|---|
| 1 | =(赋值运算)、:= | 
| 2 | II、OR | 
| 3 | XOR | 
| 4 | &&、AND | 
| 5 | NOT | 
| 6 | BETWEEN、CASE、WHEN、THEN、ELSE | 
| 7 | =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN | 
| 8 | I | 
| 9 | & | 
| 10 | <<、>> | 
| 11 | -(减号)、+ | 
| 12 | *、/、% | 
| 13 | ^ | 
| 14 | -(负号)、〜(位反转) | 
| 15 | ! |