_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h':no such file or directory数据库笔试题及答案Mysql Where 条件使用列别名Every derived table must have its own aliasMySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)utf8mb4 字符集(4字节 UTF-8 Unicode 编码)Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE)right syntax to use near 'USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8' at line 6mysql中delete的表别名使用方法Windows7下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.batMySQL与PostgreSQL比较 哪个数据库更好java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB3' for column 'Content' at row 1service mysqld start MySQL Daemon failed to start.Python Version 2.7 required which was not found in the registry解决python连接mysql,UTF-8乱码问题如何从官网下载MySQL最新版本的安装包?MySQL 如何实现行转列分级输出?Bluemix云端数据库服务使用示例———PHP投票程序Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序MySQL 数据库简介Windows 安装最新版 MySQLLinux 安装最新版MySQL与 MySQL 建立连接MySQL 创建子账号MySQL 多实例配置MySQL 创建数据库MySQL 删除数据库MySQL 选中数据库MySQL 的数据类型1MySQL 的数据类型2MySQL 设计数据表MySQL 数据表设计规范ALTER 命令修改表MySQL 删除数据表INSERT 插入数据DELETE 删除数据SELECT 查询数据UPDATE 更新数据LIKE 模糊查询WHERE 条件查询UNION 联合查询ORDER BY 排序JOIN 表连接DISTINCT 去重GROUP BY分组聚合函数 AVG、COUNT、SUM聚合函数 MIN、MAX条件判断函数MySQL 的系统函数MySQL 中使用正则表达式MySQL 存储引擎概述

条件判断函数

条件判断函数

本小节介绍 MySQL 提供的 IF、IFNULL、CASE 三种条件判断函数或结构,条件判断是为了实现控制流,在不同的条件下执行不同的流程。

1. IF函数

以 student 表为例,使用 IF() 函数对查询结果的字段判断:

SELECT name,IF(age > ,'成年','未成年') AS age_group,id_number FROM student;

查询结果如下图:

图片描述

Tips:如上图所示, IF(age > 17,'成年','未成年') 表示若 age 字段满足 age > 17 则展示为 成年,否则展示为 未成年。

2. IFNULL函数

为了演示方便,先向 teacher 表插入测试数据:

INSERT INTO teacher (name,age,id_number,email) VALUES('Jack',,'420117202006041111',NULL),('Mary',,'420117202006042222','mary@qq.com'),('Timo',,'420117202006043333',NULL),('Faker',,'420117202006044444','faker@qq.com'),('Bob',,'420117202006045555',NULL);

执行结果如下图:

图片描述

使用 IFNULL() 函数对查询结果的字段判断:

SELECT name,age,id_number,IFNULL(email,'default@qq.com') AS full_email FROM teacher;

执行结果如下图:

图片描述

Tips:如上图所示, IFNULL(email,'default@qq.com') 表示若 email 字段为 NULL ,则展示为 default @qq.com

3. CASE条件判断

以 teacher 表为例,将指定英文名对应的中文名展示出来:

SELECT *,CASE nameWHEN 'Tom'  THEN '汤姆'WHEN 'Jack' THEN '杰克'WHEN 'Mary' THEN '玛丽'WHEN 'Timo' THEN '提莫'WHEN 'Bob'  THEN '鲍勃'WHEN 'Judy' THEN '朱蒂'ELSE '未定义' END AS 'chinese_name'FROM teacher;

执行结果如下图:

图片描述

Tips:如上图所示, 对 name 字段进行条件判断,并将判断后的列重命名为 chinese_name,若指定的 name 字段的值满足 WHEN 则展示相应的 THEN 后面的值。

4. 小结

本小节介绍了 IF、IFNULL、CASE 三种条件判断,并且可以对指定字段进行条件判断得到满足需求的结果,需要注意的是,实际业务中这些条件判断用的很少,建议这些数据的处理交给后端程序语言去处理,可以更好的维护和管理业务逻辑代码。