1. 程式人生 > >mysql 流程函式

mysql 流程函式

  一 , 流程函式

函式 功能
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);

     

    判斷高薪,我們這裡如果認為高於2000屬於高薪,其餘為底薪

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

    

    判斷是否有null,null不能參與運算,所以需要更改輸出結果

SELECT IFNULL(salary,0) FROM salary;

    

三 , case 流程

    判斷高底薪 

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

    

    設定多個分支判斷 

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

    

四 ,  其他常用函式

函式 功能
database() 返回當前函式
version() 返回當前資料庫版本
user() 返回當前的登登入使用者名稱
inet_aton(ip) 返回ip地址的數字表示
inet_natoa(num) 返回數字代表的ip地址
password(str) 返回字串str的加密版本
md5()

返回字串str的MD5值

    

     database()

      SELECT DATABASE();

      

    version()

      SELECT VERSION();

      

    user()

      SELECT USER();
      

    inet_aton(ip) 

      SELECT INET_ATON('192.168.1.1')

      

    inet_natoa(num)
      SELECT INET_ATON('3232235777')
      
      

      password(str) 
      SELECT PASSWORD('123456')

      

    MD5()

      SELECT MD5('12345')