MySQL 运算符 (Operators)
算数运算符
Arithmetic Operators
Operator | Description | Example |
---|---|---|
+ | Add | Try it |
- | Subtract | Try it |
* | Multiply | Try it |
/ | Divide | Try it |
% | Modulo |
位运算符
Bitwise Operators
Operator | Description |
---|---|
& | Bitwise AND |
| | Bitwise OR |
^ | Bitwise exclusive OR |
比较运算符
Comparison Operators
Operator | Description | Example |
---|---|---|
= | Equal to | Try it |
> | Greater than | Try it |
< | Less than | Try it |
>= | Greater than or equal to | Try it |
<= | Less than or equal to | Try it |
<> | Not equal to |
复合运算符
Compound Operators
Operator | Description |
---|---|
+= | Add equals |
-= | Subtract equals |
*= | Multiply equals |
/= | Divide equals |
%= | Modulo equals |
&= | Bitwise AND equals |
^-= | Bitwise exclusive equals |
|*= | Bitwise OR equals |
bash
-- 假设变量 x 的初始值为 5
SET @x = 5;
-- 加法赋值运算符,将 3 加到变量 x 上,并将结果重新赋给变量 x
SET @x += 3; -- 现在 @x 的值为 8
-- 减法赋值运算符,从变量 x 中减去 2,并将结果重新赋给变量 x
SET @x -= 2; -- 现在 @x 的值为 6
-- 乘法赋值运算符,将变量 x 乘以 4,并将结果重新赋给变量 x
SET @x *= 4; -- 现在 @x 的值为 24
-- 除法赋值运算符,将变量 x 除以 3,并将结果重新赋给变量 x
SET @x /= 3; -- 现在 @x 的值为 8
-- 取模赋值运算符,将变量 x 除以 5 取余,并将结果重新赋给变量 x
SET @x %= 5; -- 现在 @x 的值为 3
-- 按位与赋值运算符,对变量 x 和 10 执行按位与操作,并将结果重新赋给变量 x
SET @x &= 10; -- 现在 @x 的值为 2
-- 按位异或赋值运算符,对变量 x 和 6 执行按位异或操作,并将结果重新赋给变量 x
SET @x ^= 6; -- 现在 @x 的值为 4
-- 按位或赋值运算符,对变量 x 和 1 执行按位或操作,并将结果重新赋给变量 x
SET @x |= 1; -- 现在 @x 的值为 5
逻辑运算符
Logical Operators
Operator | Description | Example | 例子 |
---|---|---|---|
ALL | 如果子查询中的所有值都满足条件,则返回 TRUE。 | Try it | SELECT * FROM orders WHERE quantity > ALL (SELECT quantity FROM products); |
AND | 如果由 AND 分隔的所有条件都为 TRUE,则返回 TRUE。 | Try it | SELECT * FROM customers WHERE age > 25 AND city = 'New York'; |
ANY | 如果子查询中的任何值都满足条件,则返回 TRUE。 | Try it | SELECT * FROM orders WHERE quantity > ANY (SELECT quantity FROM products); |
BETWEEN | 如果操作数在比较范围内,则返回 TRUE。 | Try it | SELECT * FROM products WHERE price BETWEEN 10 AND 50; |
EXISTS | 如果子查询返回一个或多个记录,则返回 TRUE。 | Try it | SELECT * FROM customers WHERE EXISTS (SELECT * FROM orders WHERE customers.customer_id = orders.customer_id); |
IN | 如果操作数等于列表中的任何一个表达式,则返回 TRUE。 | Try it | SELECT * FROM products WHERE category IN ('Electronics', 'Clothing', 'Books'); |
LIKE | 如果操作数与模式匹配,则返回 TRUE。 | Try it | SELECT * FROM employees WHERE last_name LIKE 'S%'; |
NOT | 如果条件不为 TRUE,则显示记录。 | Try it | SELECT * FROM customers WHERE NOT age > 25; |
OR | 如果由 OR 分隔的任何条件为 TRUE,则返回 TRUE。 | Try it | SELECT * FROM customers WHERE city = 'New York' OR city = 'Los Angeles'; |
SOME | 如果子查询中的任何值都满足条件,则返回 TRUE。 | do it | SELECT * FROM Products WHERE Price > SOME (SELECT Price FROM Products WHERE Price > 20); |