MySQL 中,表达式是字面量、变量和操作符的集合,用以计算出某些需要的值。
MySQL 支持多种类型的表达式,包括算术表达式、字符串表达式、逻辑表达式等。
以下是一些常见的 MySQL 表达式示例:
算术表达式,例如:
-- 用于进行数学运算
2 + 3、5 * (4 - 2)字符串表达式,例如:
-- 用于连接字符串
concat('Hello, ', name)逻辑表达式,例如:
-- 用于判断条件是否成立
age > 18条件表达式,例如:
-- 根据条件返回不同的值
IF(condition, true_value, false_value)NULL 检查表达式,例如:
-- 用于检查值是否为空
IS NULL
IS NOT NULLCASE 表达式,例如:
-- 根据条件返回不同的结果
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result3 ENDMySQL 中表达式可以在 MySQL 查询中的不同地方使用,例如:
(1)SELECT 语句的列列表
mysql> select id, upper(`name`) as new_name from `user`;
+----+----------+
| id | new_name |
+----+----------+
| 1 | TOM |
| 2 | HELEN |
| 3 | JEMO |
| 4 | BILL |
+----+----------+
4 rows in set (0.03 sec)(2)WHERE 子句
mysql> select id, upper(`name`) as new_name from `user` where upper(substring(`name`, 1, 1))='B';
+----+----------+
| id | new_name |
+----+----------+
| 4 | BILL |
+----+----------+
1 row in set (0.03 sec)(3)ORDER BY 子句
mysql> select id, upper(`name`) as new_name from `user` order by upper(substring(`name`, 3, 1)) asc;
+----+----------+
| id | new_name |
+----+----------+
| 2 | HELEN |
| 4 | BILL |
| 1 | TOM |
| 3 | JEMO |
+----+----------+
4 rows in set (0.05 sec)存储过程和函数中也可以使用表达式,例如:
-- 创建一个函数,返回一个字符串
CREATE FUNCTION f_title(in_gender CHAR(1),
in_age INT, in_marital_status VARCHAR(7))
RETURNS VARCHAR(6)
BEGIN
-- 声明一个变量
DECLARE title VARCHAR(6);
-- IF语句
-- 性别为女,且年龄小于 16 岁
IF in_gender='F' AND in_age<16 THEN
SET title='Miss';
-- 性别为女,且年龄大于等于 16 岁,且已婚
ELSEIF in_gender='F' AND in_age>=16 AND in_marital_status='Married' THEN
SET title='Mrs';
-- 性别为女,且年龄大于等于 16 岁,且未婚
ELSEIF in_gender='F' AND in_age>=16 AND in_marital_status='Single' THEN
SET title='Ms';
-- 性别为男,且年龄小于16岁
ELSEIF in_gender='M' AND in_age<16 THEN
SET title='Master';
-- 性别为男,且年龄大于等于 16 岁
ELSEIF in_gender='M' AND in_age>=16 THEN
SET title='Mr';
END IF;
-- 返回数据
RETURN(title);
END;