以下是基于mysql v8.0
IF表达式
1、用于数据库定义语言(DDL)中
# 常用于判断数据库或表是否存在
# 例如:
CREATE DATABASE IF NOT EXISTS `database_user_system`
CREATE TABLE IF NOT EXISTS `table_user_share`
DROP DATABASE IF EXISTS `database_user_system`
DROP TABLE IF EXISTS `table_user_share`
2、用于数据库操作语言(DML)中
# 基本表达式 IF(EXPR, RESULT1, RESULT2)
# 例如:
UPDATE table_user SET sex=IF(sex <> 2, 1, IF(sex IS 0, 3, sex ))
3、用于数据库查询语言(DQL)中
# 常用的表达式 IF(EXPR, RESULT1, RESULT2)
# 例如:
SELECT IF(1 < 2, 1, 2) # 输出 1
SELECT IF(1 > 2, 1, 2) # 输出 2
4、用于数据库存储过程中
# 基本的表达式 IF(expr) THRN statement [ELSEIF expr THEN] statement2 [ELSE] statement3 ENDIF
# 例如:
DELIMITER $$ CREATE PROCEDURE func1(IN num INT, OUT ret VARCHAR(36)) BEGIN IF sex=0 THEN SELECT '女'; ELSE SELECT '男'; ENDIF END$$ DELIMITER
CASE控制语句
CASE … WHEN
# 基本表达式 CASE [column_name] WHEN [value1] THEN [result1]... ELSE [default] END
# 例如:
SELECT CASE sex WHEN 0 THEN '女' WHEN 1 THEN '男' ELSE '未知' END
CASE WHEN …
# 基本表达式 CASE WHEN [expr] THEN [result1]... ELSE [default] END
# 例如:
SELECT CASE WHEN sex = 0 THEN '女' WHEN sex = 1 AND name = 'john' THEN '男' ELSE '未知' END