一 , 流程函数

函数

功能

if(value,t f)



如果value是真,返回t;否则返回f


ifnull(value1,value2)


如果valve1不为空返回value1,否则返回value2



case when [value1]

then [result]...else[defalult]END



如果value1是真,返回result1,否则返回defalut



case [expr ] when [value1]

then[result]...else[default]END



如果expr等于value1,返回result,否则返回defalut


二, if 流程

  创建测试数据库:

CREATE TABLE salary (userid INT,salary DECIMAL(9,2));
INSERT INTO salary VALUES(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,NULL);

mysql 流程函数_字符串

判断高薪,我们这里如果认为高于2000属于高薪,其余为底薪

SELECT IF(salary>2000, 'high','low') FROM salary;

mysql 流程函数_mysql_02

判断是否有null,null不能参与运算,所以需要更改输出结果

SELECT IFNULL(salary,0) FROM salary;

mysql 流程函数_字符串_03

三 , case 流程

判断高底薪 

SELECT CASE WHEN salary<=2000 THEN 'low' ELSE 'high' END FROM salary;

mysql 流程函数_与运算_04

设置多个分支判断 

SELECT CASE salary WHEN 1000 THEN 'low' WHEN 2000 THEN 'mid' ELSE 'hihg' END FROM salary;

mysql 流程函数_与运算_05

四 ,  其他常用函数

函数

功能

database()

返回当前函数

version()

返回当前数据库版本

user()

返回当前的登登录用户名

inet_aton(ip)

返回ip地址的数字表示

inet_natoa(num)

返回数字代表的ip地址

password(str)

返回字符串str的加密版本

md5()


返回字符串str的MD5值



     database()

      SELECT DATABASE();

      mysql 流程函数_字符串_06

    version()

      SELECT VERSION();

      mysql 流程函数_ip地址_07

    user()

      SELECT USER();

      mysql 流程函数_ip地址_08

    inet_aton(ip) 

      SELECT INET_ATON('192.168.1.1')

      mysql 流程函数_与运算_09

    inet_natoa(num)

      SELECT INET_ATON('3232235777')


      mysql 流程函数_mysql_10

      password(str) 

      SELECT PASSWORD('123456')

      mysql 流程函数_ip地址_11

    MD5()

      SELECT MD5('12345')

        mysql 流程函数_字符串_12