mysql 流程函式
阿新 • • 發佈:2018-11-05
一 , 流程函式
函式 | 功能 |
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 2000THEN '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')