mysql 中 if else 的方法是什么?

mysql 中 if else 的方法是什么?

-- #1 Mysql交互式SQL里IF是做分支判断用的,搭配THEN、ELSEIF、ELSE、ENDIF。见如下示例: --1 通过IDCard获取男女性别信息 CREATE FUNCTION getGender ( idcard varchar ( 50 )) RETURNS varchar ( 50 ) CHARSET utf8 BEGIN DECLARE out_gender VARCHAR ( 4 ); DECLARE V_SEX VARCHAR ( 4 ); IF LENGTH ( idcard ) = 18 THEN SET V_SEX = SUBSTRING ( idcard , 17 , 1 ) ; IF V_SEX % 2 = 0 THEN SET out_gender = '0' ; else SET out_gender = '1' ; end if ; ELSEIF LENGTH ( idcard ) = 15 THEN SET V_SEX = SUBSTRING ( idcard , 15 , 1 ) ; IF V_SEX % 2 = 0 THEN SET out_gender = '0' ; else SET out_gender = '1' ; end if ; ELSE SET out_gender = '3' ; END IF ; RETURN out_gender ; END -- #2 IF也可在SQL里直接使用以达到动态拼接SQL关联条件的作用,详见下例: -- # 2.1 当 emp A表的sal大于2450则关联条件用B.deptno=20 -- # 2.2 其它情况则关联条件用B.deptno=30 SELECT A . deptno , A . sal , CASE WHEN A . sal > 2450 THEN 1 ELSE 0 END AS flag FROM emp A JOIN dept B ON A . deptno = B . deptno AND IF (( A . sal > 2450 ),( B . deptno = 20 ),( B . deptno = 30 )) ORDER BY flag , sal -- # 3 完整表结构及数据见附录(文中数据集的mysql部分): SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据