Mysql中的条件语句if、case

Mysql中的条件语句在我们对数据进行转换的时候比较有用,这样就不需要创建中转表。

IF 函数

1
IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值。

1
select *,if(sva=1,"男","女") as ssva from taname where sva != ""

IF ELSE 流程控制语句

在mysql存储过程中的用法:

1
2
3
4
IF search_condition THEN statement_list 
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF

IF作为一条语句,在END IF后需要加上分号“;”以表示语句结束,其他语句如CASE、LOOP等也是相同的。

CASE 表达式

1
select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''

Swap Salary

Leetcode中有一道题目就是根据条件来转换数据的,就需要用条件控制语句来实现。

1
UPDATE salary SET sex = IF(sex = 'm', 'f', 'm')

也可以利用条件语句,在搜索的时候,直接进行数据转换

1
select *,(CASE WHEN sex='1' THEN '男' WHEN sex='0' THEN '女' ELSE '保密' END) as sex_text from user

参考资料:
1、Mysql if case总结
2、Leetcode swap salary
3、select case when if 的一些用法
4、IF Syntax/

cocowool

A FULL STACK DREAMER!