2025-11-29 09:57:04

0 序言

本文围绕MySQL中的运算符展开,重点讲解算术、比较、逻辑、位运算符的定义、规则、示例及优先级并介绍正则表达式查询的相关内容。 通过本文的学习,你能初步掌握各类运算符的用法,理解其背后逻辑,解决实际查询中的运算问题,提升SQL语句编写能力。

1 算术运算符

算术运算符用于数学运算,连接两个数值或表达式,进行加、减、乘、除、取模操作。

1.1 加法与减法运算符

计算两个值或表达式的和(+)、差(-)。

SELECT 100, 100 + 0, 100 - 0, 100 + 50, 100 + 50 -30, 100 + 35.5, 100 - 35.5 FROM dual;

结果如下:

就跟正常的运算是一样的,这里就不过多解释了。

牢记以下几点规则:

整数间加减,结果为整数;整数与浮点数加减,结果为浮点数。

加法和减法优先级相同,运算顺序不影响结果。

MySQL中“+”仅表数值相加,遇非数值先转数值,失败则按0计算,字符串拼接用CONCAT()。

1.2 乘法与除法运算符

计算两个值或表达式的乘积(*)、商(/或DIV)。

SELECT 2*5/2, 100*1, 100*1.0, 100/1.0, 100/2, 100+2*5/2, 100/3, 100 DIV 0 FROM dual;

结果如下:

同理,牢记以下规则:

乘1或除1(整数)结果为原数;乘1.0或除1.0结果为浮点数,值与原数相等。

除法结果为浮点数,除不尽时保留4位小数。

乘除优先级相同,顺序不影响结果;除数为0时结果为NULL。

1.3 求模(求余)运算符

计算两个值或表达式的余数(%或MOD)。

SELECT 12%3, 12 MOD 5 FROM dual;

结果如下:

又比如说,我要筛选employee_id为偶数的员工:

SELECT * FROM employees WHERE employee_id MOD 2 = 0;

这里id号为偶数的员工就全被选择出来了。

2 比较运算符

用于比较左右操作数,结果为1(真)、0(假)或NULL,常用于SELECT查询的条件。

2.1 等号运算符(=)

判断两边值、字符串或表达式是否相等。

规则如下:

均为字符串:比较ANSI编码;

均为整数:比较大小;一整数一字符串:字符串转数字比较。

含NULL时结果为NULL。

SELECT 1=1, 1='1', 1=0, 'a'='a', (5+3