mysql常用函数汇总,MySQL常用函数

1、数学函数
ABS(x)   重回x的绝对值

一、数学函数
ABS(x)                    再次回到x的相对值
BIN(x)          再次回到x的贰进制(OCT重临八进制,HEX再次来到十6进制)
CEILING(x)                重临大于x的蝇头整数值
EXP(x)          重回值e(自然对数的底)的x次方
FLOOR(x)         再次回到小于x的最大整数值
GREATEST(x一,x二,…,xn)  重回集合中最大的值
LEAST(x1,x二,…,xn)       重回集合中细小的值
LN(x)                     再次回到x的自然对数
LOG(x,y)         重返x的以y为底的对数
MOD(x,y)                  返回x/y的模(余数)
PI()           返回pi的值(圆周率)
RAND()          再次来到0到1内的随意值,能够通过提供二个参数(种子)使RAND()随机数生成器生成2个点名的值。
ROUND(x,y)        重回参数x的4舍5入的有y位小数的值
SIGN(x)          重返代表数字x的标志的值
SQ锐界T(x)          再次回到3个数的平方根
TRUNCATE(x,y)             重回数字x截短为y位小数的结果

转发地址:

一、数学函数 ABS(x)   重临x的相对值
BIN(x)   再次来到x的二进制(OCT重回捌进制,HEX再次来到十6进制)
CEILING(x)   再次回到大于x的微小整数值
EXP(x)   重回值e(自然对数的底)的x次方
FLOO陆风X8(x)   重回小于x的最大整数值
GREATEST(x一,x二,…,xn)再次回到集合中最大的值
LEAST(x一,x2,…,xn)      重临集合中型小型小的的值
LN(x)                    重临x的自然对数
LOG(x,y)再次来到x的以y为底的对数
MOD(x,y)                 返回x/y的模(余数)
PI()返回pi的值(圆周率)
RAND()重回0到1内的随意值,能够通过提供七个参数(种子)使RAND()随机数生成器生成三个点名的值。
ROUND(x,y)再次回到参数x的四舍伍入的有y位小数的值
SIGN(x) 重返代表数字x的号子的值
SQ奥迪Q5T(x) 再次来到3个数的平方根
TRUNCATE(x,y)            再次来到数字x截短为y位小数的结果

BIN(x)   重返x的贰进制(OCT重回八进制,HEX重临十6进制)
CEILING(x)   重临大于x的小小整数值
EXP(x)   重返值e(自然对数的底)的x次方
FLOO陆风X8(x)   重临小于x的最大整数值
GREATEST(x一,x二,…,xn)再次来到集合中最大的值
LEAST(x1,x2,…,xn)      重临集合中幽微的值
LN(x)                    重返x的自然对数
LOG(x,y)重临x的以y为底的对数
MOD(x,y)                 返回x/y的模(余数)
PI()返回pi的值(圆周率)
RAND()再次来到0到1内的即兴值,能够因而提供三个参数(种子)使RAND()随机数生成器生成1个点名的值。
ROUND(x,y)重返参数x的四舍伍入的有y位小数的值
SIGN(x) 重临代表数字x的符号的值
SQ奥迪Q5T(x) 再次回到叁个数的平方根
TRUNCATE(x,y)            返回数字x截短为y位小数的结果

2、聚合函数(常用于GROUP BY从句的SELECT查询中)
AVG(col)         重返钦定列的平均值
COUNT(col)        再次来到内定列中国和北美洲NULL值的个数
MIN(col)         重回钦命列的最小值
MAX(col)         再次来到钦命列的最大值
SUM(col)         重临钦赐列的全数值之和
GROUP_CONCAT(col)     再次来到由属于一组的列值连接组合而成的结果

一、数学函数 ABS(x)   重回x的相对值
997755.com澳门葡京 ,BIN(x)   再次回到x的二进制(OCT再次来到8进制,HEX重返十陆进制)
CEILING(x)   再次来到大于x的细小整数值
EXP(x)   重回值e(自然对数的底)的x次方
FLOO瑞鹰(x)   重回小于x的最大整数值
GREATEST(x一,x二,…,xn)重回集合中最大的值
LEAST(x1,x二,…,xn)      重返集合中幽微的值
LN(x)                    重临x的自然对数
LOG(x,y)再次来到x的以y为底的对数
MOD(x,y)                 返回x/y的模(余数)
PI()返回pi的值(圆周率)
RAND()重临0到1内的任性值,能够通过提供二个参数(种子)使RAND()随机数生成器生成一个点名的值。
ROUND(x,y)重返参数x的四舍伍入的有y位小数的值
SIGN(x) 重临代表数字x的标记的值
SQTucsonT(x) 再次来到二个数的平方根
TRUNCATE(x,y)            再次回到数字x截短为y位小数的结果

2、聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)重临钦赐列的平均值
COUNT(col)再次来到钦点列中国和澳洲NULL值的个数
MIN(col)重回钦命列的最小值
MAX(col)再次来到内定列的最大值
SUM(col)再次来到钦赐列的全部值之和
GROUP_CONCAT(col) 重临由属于壹组的列值连接组合而成的结果

二、聚合函数(常用于GROUP BY从句的SELECT查询中)
AVG(col)再次回到钦赐列的平均值
COUNT(col)重回钦命列中国和南美洲NULL值的个数
MIN(col)再次回到钦命列的最小值
MAX(col)重回内定列的最大值
SUM(col)重临钦定列的全数值之和
GROUP_CONCAT(col) 重临由属于1组的列值连接组合而成的结果

3、字符串函数
ASCII(char)        再次回到字符的ASCII码值
BIT_LENGTH(str)      再次回到字符串的比特长度
CONCAT(s壹,s二…,sn)    将s一,s二…,sn连接成字符串
CONCAT_WS(sep,s1,s二…,sn)  将s一,s二…,sn连接成字符串,并用sep字符间隔
INSEXC60T(str,x,y,instr)   
将字符串str从第x地点上马,y个字符长的子串替换为字符串instr,再次来到结果
FIND_IN_SET(str,list)   分析逗号分隔的list列表,假使发现str,再次来到str在list中的地方
LCASE(str)或LOWELX570(str)   重回将字符串str中拥有字符改变为小写后的结果
LEFT(str,x)        再次回到字符串str中最左侧的x个字符
LENGTH(s)         重临字符串str中的字符数
LT奥迪Q伍IM(str)         从字符串str中切掉开首的空格
POSITION(substr,str)    再次来到子串substr在字符串str中第一遍出现的岗位
QUOTE(str)         用反斜杠转义str中的单引号
REPEAT(str,srchstr,rplcstr)重回字符串str重复x次的结果
REVEHummerH二SE(str)        再次来到颠倒字符串str的结果
CR-VIGHT(str,x)        重返字符串str中最右侧的x个字符
PAJEROTQX56IM(str)         重临字符串str尾部的空格
ST本田CR-VCMP(s一,s二)       相比字符串s1和s2
T库罗德IM(str)         去除字符串首部和尾巴的兼具空格
UCASE(str)或UPPE本田CR-V(str)   重回将字符串str中有所字符转变为大写后的结果

二、聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)重回钦点列的平均值
COUNT(col)再次回到内定列中国和亚洲NULL值的个数
MIN(col)重临钦赐列的最小值
MAX(col)再次回到钦赐列的最大值
SUM(col)重返钦点列的全部值之和
GROUP_CONCAT(col) 重临由属于一组的列值连接组合而成的结果

三、字符串函数
ASCII(char)重临字符的ASCII码值
BIT_LENGTH(str)重回字符串的比特长度
CONCAT(s壹,s二…,sn)将s一,s二…,sn连接成字符串
CONCAT_WS(sep,s壹,s二…,sn)将s1,s二…,sn连接成字符串,并用sep字符间隔
INSEENCORET(str,x,y,instr)
将字符串str从第x地点上马,y个字符长的子串替换为字符串instr,再次来到结果
FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,重返str在list中的地方
LCASE(str)或LOWE奥德赛(str) 重临将字符串str中有所字符改变为小写后的结果
LEFT(str,x)重临字符串str中最左侧的x个字符
LENGTH(s)再次来到字符串str中的字符数
mysql常用函数汇总,MySQL常用函数。LTLX570IM(str) 从字符串str中切掉伊始的空格
POSITION(substr,str) 再次来到子串substr在字符串str中第3遍出现的职位
QUOTE(str) 用反斜杠转义str中的单引号
REPEAT(str,srchstr,rplcstr)重回字符串str重复x次的结果
REVE卡宴SE(str) 重返颠倒字符串str的结果
PRADOIGHT(str,x) 重临字符串str中最左边的x个字符
OdysseyTPAJEROIM(str) 重回字符串str后面部分的空格
ST奥迪Q5CMP(s壹,s2)相比较字符串s壹和s二
T索罗德IM(str)去除字符串首部和尾巴的具有空格
UCASE(str)或UPPE奥迪Q5(str) 再次回到将字符串str中拥有字符转变为大写后的结果

叁、字符串函数
ASCII(char)重返字符的ASCII码值
BIT_LENGTH(str)再次来到字符串的比特长度
CONCAT(s一,s2…,sn)将s一,s二…,sn连接成字符串
CONCAT_WS(sep,s一,s2…,sn)将s1,s二…,sn连接成字符串,并用sep字符间隔
INSEMuranoT(str,x,y,instr)
将字符串str从第x地方上马,y个字符长的子串替换为字符串instr,重临结果
FIND_IN_SET(str,list)分析逗号分隔的list列表,假设发现str,重回str在list中的地方
LCASE(str)或LOWE凯雷德(str) 再次回到将字符串str中颇具字符改变为小写后的结果
LEFT(str,x)重临字符串str中最右侧的x个字符
LENGTH(s)再次回到字符串str中的字符数
LT凯雷德IM(str) 从字符串str中切掉开首的空格
POSITION(substr,str) 重返子串substr在字符串str中率先次面世的职位
QUOTE(str) 用反斜杠转义str中的单引号
REPEAT(str,srchstr,rplcstr)重返字符串str重复x次的结果
REVE中华VSE(str) 再次来到颠倒字符串str的结果
中华VIGHT(str,x) 重回字符串str中最右侧的x个字符
福睿斯TBMWX伍IM(str) 重回字符串str尾巴部分的空格
ST奇骏CMP(s一,s贰)相比较字符串s一和s二
T宝马X5IM(str)去除字符串首部和尾巴部分的保有空格
UCASE(str)或UPPE奥迪Q5(str) 重返将字符串str中具有字符转变为大写后的结果

四、日期和岁月函数
CURDATE()或CURRENT_DATE() 再次来到当前的日期
CURTIME()或CURRENT_TIME() 再次来到当前的时日
DATE_ADD(date,INTE索罗德VAL int keyword)
重回日期date加上间隔时间int的结果(int必须根据重点字展开格式化),如:SELECT
DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
DATE_FO奥迪Q3MAT(date,fmt)   依据钦点的fmt格式格式化日期date值
DATE_SUB(date,INTE昂科拉VAL int keyword)
再次回到日期date加上间隔时间int的结果(int必须依照重点字展开格式化),如:SELECT
DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
DAYOFWEEK(date)    重临date所表示的一星期中的第几天(一~7)
DAYOFMONTH(date)   重回date是七个月的第几天(一~31)
DAYOFYEA凯雷德(date)    重返date是一年的第几天(一~366)
DAYNAME(date)    重回date的星期名,如:SELECT DAYNAME(CU奥迪Q5RENT_DATE);
FROM_UNIXTIME(ts,fmt)   遵照钦定的fmt格式,格式化UNIX时刻戳ts
HOUR(time)    重返time的钟点值(0~23)
MINUTE(time)    重回time的分钟值(0~59)
MONTH(date)    重回date的月份值(一~12)
MONTHNAME(date)    再次来到date的月份名,如:SELECT
MONTHNAME(CU冠道RENT_DATE);
NOW()     重返当前的日子和岁月
QUA卡宴TE奥迪Q3(date)    重回date在一年中的季度(一~4),如SELECT
QUARTER(CURRENT_DATE);
WEEK(date)    重返日期date为一年中第几周(0~53)
YEA帕杰罗(date)    再次回到日期date的年份(1000~9999)

三、字符串函数
ASCII(char)再次来到字符的ASCII码值
BIT_LENGTH(str)重返字符串的比特长度
CONCAT(s一,s2…,sn)将s一,s2…,sn连接成字符串
 如若有八个字符串为null 结果就非常 null

4、日期和时间函数
CURDATE()或CURRENT_DATE() 重返当前的日子
CURTIME()或CURRENT_TIME() 重临当前的日子
DATE_ADD(date,INTEGL450VAL int
keyword)重临日期date加上间隔时间int的结果(int必须比照重点字展开格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL
6 MONTH);
DATE_FOCRUISERMAT(date,fmt)  依据内定的fmt格式格式化日期date值
DATE_SUB(date,INTE奥迪Q5VAL int
keyword)再次回到日期date加上间隔时间int的结果(int必须比照重点字展开格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL
6 MONTH);
DAYOFWEEK(date)   重返date所表示的一星期中的第几天(一~7)
DAYOFMONTH(date)  再次来到date是三个月的第几天(一~31)
DAYOFYEAMurano(date)   重返date是一年的第几天(壹~366)
DAYNAME(date)   再次来到date的星期名,如:SELECT DAYNAME(CUPAJERORENT_DATE);
FROM_UNIXTIME(ts,fmt)  依据钦定的fmt格式,格式化UNIX时刻戳ts
HOUOdyssey(time)   再次来到time的小时值(0~23)
MINUTE(time)   再次回到time的分钟值(0~59)
MONTH(date)   重回date的月份值(一~12)
MONTHNAME(date)   重回date的月度名,如:SELECT
MONTHNAME(CUOdysseyRENT_DATE);
NOW()    再次回到当前的日期和岁月
QUA奥迪Q三TE帕杰罗(date)   再次回到date在一年中的季度(一~4),如SELECT
QUARTER(CURRENT_DATE);
WEEK(date)   重临日期date为一年中第几周(0~53)
YEA卡宴(date)   返回日期date的年度(一千~9999)
部分演示:

四、日期和时间函数
CURDATE()或CURRENT_DATE() 重临当前的日子
CURTIME()或CURRENT_TIME() 重临当前的光阴
DATE_ADD(date,INTE途乐VAL int
keyword)再次回到日期date加上间隔时间int的结果(int必须比照重点字展开格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL
6 MONTH);
DATE_FORAV4MAT(date,fmt)  依据内定的fmt格式格式化日期date值
DATE_SUB(date,INTECRUISERVAL int
keyword)重临日期date加上间隔时间int的结果(int必须比照重点字展开格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL
6 MONTH);
DAYOFWEEK(date)   再次来到date所表示的一星期中的第几天(一~7)
DAYOFMONTH(date)  重返date是三个月的第几天(壹~31)
DAYOFYEA宝马X3(date)   重回date是一年的第几天(壹~366)
DAYNAME(date)   重回date的星期名,如:SELECT DAYNAME(CU路虎极光RENT_DATE);
FROM_UNIXTIME(ts,fmt)  依照钦命的fmt格式,格式化UNIX时光戳ts
HOU奥迪Q5(time)   重临time的钟点值(0~23)
MINUTE(time)   重临time的分钟值(0~59)
MONTH(date)   重回date的月份值(1~12)
MONTHNAME(date)   再次来到date的月份名,如:SELECT
MONTHNAME(CU冠道RENT_DATE);
NOW()    重回当前的日子和岁月
QUA讴歌ZDXTE大切诺基(date)   重返date在一年中的季度(1~4),如SELECT
QUARTER(CURRENT_DATE);
WEEK(date)   再次来到日期date为一年中第几周(0~53)
YEA奥迪Q7(date)   重返日期date的年份(一千~9999)
有的示范:
得到当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
重回多个日期值之间的差值(月数):SELECT PE本田CR-VIOD_DIFF(200302,199802);
在Mysql中计算年龄:
SELECT
DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),’%Y’)+0 AS
age FROM employee;
如此,假如Brithday是前景的年月日的话,总括结果为0。
上面包车型地铁SQL语句总结职员和工人的相对年龄,即当Birthday是鹏程的日猪时,将得到负值。
SELECT DATE_FORMAT(NOW(), ‘%Y’) – DATE_FORMAT(birthday, ‘%Y’)
-(DATE_FORMAT(NOW(), ’00-%m-%d’) <DATE_FORMAT(birthday,
’00-%m-%d’)) AS age from employee

1部分示范:
收获当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
归来四个日期值之间的差值(月数):SELECT PE汉兰达IOD_DIFF(200302,199802);
在Mysql中总括年龄:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),
‘%Y’)+0 AS age FROM employee;
那样,若是Brithday是鹏程的年月日的话,总计结果为0。
上面包车型地铁SQL语句计算职员和工人的相对化年龄,即当Birthday是未来的日龙时,将取得负值。
SELECT DATE_FORMAT(NOW(), ‘%Y’) – DATE_FORMAT(birthday, ‘%Y’) –
(DATE_FORMAT(NOW(), ’00-%m-%d’) < DATE_FORMAT(birthday,
’00-%m-%d’)) AS age from employee

mysql> select concat(‘aaa’,’bbb’,’ccc’),concat(‘aaa’,null);
+—————————+——————–+
| concat(‘aaa’,’bbb’,’ccc’) | concat(‘aaa’,null) |
+—————————+——————–+
| aaabbbccc | NULL |
+—————————+——————–+

复制代码 代码如下:

⑤、加密函数
AES_ENC奇骏YPT(str,key)  再次回到用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENC汉兰达YPT的结果是3个贰进制字符串,以BLOB类型存储
AES_DECKugaYPT(str,key)  重回用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)   使用key作为密钥解密加密字符串str
ENCXC60YPT(str,salt)  
使用UNIXcrypt()函数,用关键词salt(八个得以惟一明确口令的字符串,就像是钥匙一样)加密字符串str
ENCODE(str,key)   使用key作为密钥加密字符串str,调用ENCODE()的结果是叁个2进制字符串,它以BLOB类型存款和储蓄
MD伍()    总括字符串str的MD伍校验和
PASSWOTiggoD(str)   重返字符串str的加密版本,这几个加密进程是不可逆袭的,和UNIX密码加密进度选用不一致的算法。
SHA()    总结字符串str的安全散列算法(SHA)校验和
示例:
SELECT ENCRYPT(‘root’,’salt’);
SELECT ENCODE(‘xufeng’,’key’);
SELECT DECODE(ENCODE(‘xufeng’,’key’),’key’);#加解密放在一块儿
SELECT AES_ENCRYPT(‘root’,’key’);
SELECT AES_DECRYPT(AES_ENCRYPT(‘root’,’key’),’key’);
SELECT MD5(‘123456’);
SELECT SHA(‘123456’);

伍、加密函数
AES_ENCTiggoYPT(str,key)  
重回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCCR-VYPT的结果是一个2进制字符串,以BLOB类型存款和储蓄
AES_DECTiguanYPT(str,key)  
重回用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)    使用key作为密钥解密加密字符串str
ENCOdysseyYPT(str,salt)   使用UNIX
crypt()函数,用关键词salt(七个得以惟壹明确口令的字符串,就像是钥匙壹样)加密字符串str
ENCODE(str,key)   
使用key作为密钥加密字符串str,调用ENCODE()的结果是三个贰进制字符串,它以BLOB类型存储
MD五()     总结字符串str的MD5校验和
PASSWOOdysseyD(str)   
再次回到字符串str的加密版本,这些加密进度是不可反败为胜的,和UNIX密码加密进度使用不一样的算法。
SHA()     总计字符串str的安全散列算法(SHA)校验和

CONCAT_WS(sep,s1,s二…,sn)将s一,s二…,sn连接成字符串,并用sep字符间隔
INSEEnclaveT(str,x,y,instr)
将字符串str从第x地点上马,y个字符长的子串替换为字符串instr,重临结果
(x从壹方始,y包罗第x字符)

取稳当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);

六、控制流函数
MySQL有两个函数是用来进展标准化操作的,那个函数能够完成SQL的条件逻辑,允许开发者将有个别应用程序业务逻辑转换来数据库后台。
MySQL控制流函数:
CASE WHEN[test1] THEN [result1]…ELSE [default]
END要是testN是真,则赶回resultN,不然重临default
CASE [test] WHEN[val1] THEN [result]…ELSE
[default]END  假若test和valN相等,则赶回resultN,不然重返default
IF(test,t,f)   如若test是真,重返t;不然重临f
IFNULL(arg1,arg2) 假诺arg①不是空,重返arg一,不然重返arg2
NULLIF(arg一,arg二) 固然arg一=arg2重返NULL;不然再次回到arg壹
这个函数的率先个是IFNULL(),它有多少个参数,并且对第三个参数进行判断。假若第二个参数不是NULL,函数就会向调用者重回第一个参数;假设是NULL,将赶回第一个参数。
如:SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,’false’);
NULLIF()函数将会检查提供的四个参数是还是不是等于,假诺相等,则赶回NULL,假设不对等,就回到第一个参数。
如:SELECT NULLIF(1,1),NULLIF(‘A’,’B’),NULLIF(2+3,4+1);
和屡见不鲜脚本语言提供的IF()函数壹样,MySQL的IF()函数也足以建立三个简约的标准化测试,那个函数有多少个参数,第3个是要被判定的表明式,借使表明式为真,IF()将会回来第1个参数,要是为假,IF()将会回去第多少个参数。
如:SELECTIF(1<10,2,3),IF(56>100,’true’,’false’);
IF()函数在唯有二种或许结果时才符合利用。然则,在现实世界中,大家可能发现在规则测试中会须要多个分支。在那种状态下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程壹样。
CASE函数的格式有个别复杂,日常如下所示:
CASE [expression to be evaluated]
WHEN [val 1] THEN [result 1]
WHEN [val 2] THEN [result 2]
WHEN [val 3] THEN [result 3]
……
WHEN [val n] THEN [result n]
ELSE [default result]
END
此间,第1个参数是要被判定的值或表达式,接下去的是一文山会海的WHEN-THEN块,每一块的首先个参数钦点要相比的值,假使为真,就回来结果。全数的
WHEN-THEN块将以ELSE块截止,当END甘休了颇具外部的CASE块时,假使前方的每2个块都不合营就会回到ELSE块钦赐的暗许结果。如果未有钦赐ELSE块,而且具有的WHEN-THEN相比都不是真,MySQL将会回来NULL。
CASE函数还有此外①种句法,有时利用起来尤其便于,如下:
CASE
WHEN [conditional test 1] THEN [result 1]
WHEN [conditional test 2] THEN [result 2]
ELSE [default result]
END
那种规则下,重回的结果取决于相应的尺码测试是不是为真。
示例:
mysql>SELECT CASE ‘green’
     WHEN ‘red’ THEN ‘stop’
     WHEN ‘green’ THEN ‘go’ END;
SELECT CASE 9 WHEN 1 THEN ‘a’ WHEN 2 THEN ‘b’ ELSE ‘N/A’ END;
SELECT CASE WHEN (2+2)=4 THEN ‘OK’ WHEN(2+2)<>4 THEN ‘not OK’ END
ASSTATUS;
SELECT Name,IF((IsActive = 1),’已激活’,’未激活’) AS RESULT
FROMUserLoginInfo;
SELECT fname,lname,(math+sci+lit) AS total,
CASE WHEN (math+sci+lit) < 50 THEN ‘D’
WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN ‘C’
WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN ‘B’
ELSE ‘A’ END
AS grade FROM marks;
SELECT IF(ENCRYPT(‘sue’,’ts’)=upass,’allow’,’deny’) AS LoginResultFROM
users WHERE uname = ‘sue’;#七个登陆验证

示例:
SELECT ENCRYPT(‘root’,’salt’);
SELECT ENCODE(‘xufeng’,’key’);
SELECT DECODE(ENCODE(‘xufeng’,’key’),’key’);#加解密放在一块儿
SELECT AES_ENCRYPT(‘root’,’key’);
SELECT AES_DECRYPT(AES_ENCRYPT(‘root’,’key’),’key’);
SELECT MD5(‘123456’);
SELECT SHA(‘123456’);

mysql> select insert(‘beijing2008you’,1,3,’me’);
+———————————–+
| insert(‘beijing2008you’,1,3,’me’) |
+———————————–+
| mejing2008you |
+———————————–+

再次来到八个日期值之间的差值(月数):SELECT PECR-VIOD_DIFF(200302,199802);

7、格式化函数
DATE_FO福睿斯MAT(date,fmt)  依据字符串fmt格式化日期date值
FOLX570MAT(x,y)   把x格式化为以逗号隔断的数字类别,y是结果的小数位数
INET_ATON(ip)   重回IP地址的数字代表
INET_NTOA(num)   再次来到数字所代表的IP地址
TIME_FO瑞虎MAT(time,fmt)  依据字符串fmt格式化时间time值
在那之中最简便易行的是FO奥德赛MAT()函数,它能够把大的数值格式化为以逗号间隔的易读的类别。
示例:
SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),’%W,%D %M %Y %r’);
SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’);
SELECT DATE_FORMAT(19990330,’%Y-%m-%d’);
SELECT DATE_FORMAT(NOW(),’%h:%i %p’);
SELECT INET_ATON(‘10.122.89.47’);
SELECT INET_NTOA(175790383);

六、控制流函数
MySQL有6个函数是用来进展规范操作的,这一个函数能够完毕SQL的条件逻辑,允许开发者将一些应用程序业务逻辑转换成数据库后台。

FIND_IN_SET(str,list)分析逗号分隔的list列表,假设发现str,重回str在list中的地方
LCASE(str)或LOWECRUISER(str) 再次回到将字符串str中有着字符改变为小写后的结果
LEFT(str,x)再次回到字符串str中最左侧的x个字符
LENGTH(s)再次来到字符串str中的字符数
LT奥德赛IM(str) 从字符串str中切掉开始的空格
POSITION(substr,str) 重回子串substr在字符串str中率先次出现的职分
QUOTE(str) 用反斜杠转义str中的单引号
REPEAT(str,srchstr,rplcstr)再次来到字符串str重复x次的结果
REVECR-VSE(str) 重回颠倒字符串str的结果
WranglerIGHT(str,x) 再次来到字符串str中最左边的x个字符
奥迪Q5TWranglerIM(str) 再次回到字符串str尾巴部分的空格
STLacrosseCMP(s一,s2)相比较字符串s1和s二
T汉兰达IM(str)去除字符串首部和尾巴的享有空格
UCASE(str)或UPPE普拉多(str) 再次回到将字符串str中兼有字符转变为大写后的结果

在Mysql中总结年龄:
SELECT
DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),’%Y’)+0 AS
age FROM employee;
这样,若是Brithday是鹏程的年月日的话,计算结果为0。
下面的SQL语句总结员工的相对化年龄,即当Birthday是未来的日龙时,将取得负值。
SELECT DATE_FORMAT(NOW(), ‘%Y’) – DATE_FORMAT(birthday, ‘%Y’)
-(DATE_FORMAT(NOW(), ’00-%m-%d’) <DATE_FORMAT(birthday,
’00-%m-%d’)) AS age from employee

八、类型转化函数
为了拓展数据类型转化,MySQL提供了CAST()函数,它能够把2个值转化为钦定的数据类型。类型有:BINA揽胜Y,CHALX570,DATE,TIME,DATETIME,SIGNED,UNSIGNED
示例:
SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);

MySQL控制流函数:
CASE WHEN[test1] THEN [result1]…ELSE [default] END
假诺testN是真,则赶回resultN,不然重临default
CASE [test] WHEN[val1] THEN [result]…ELSE [default] END  
如果test和valN相等,则赶回resultN,不然重回default
IF(test,t,f)   假使test是真,重回t;不然再次回到 f
IFNULL(arg壹,arg贰) 假如arg1不是空,重返arg1,不然再次来到arg贰
NULLIF(arg一,arg2) 借使arg一=arg2赶回NULL;不然重返arg1

四、日期和岁月函数
CURDATE()或CURRENT_DATE() 再次来到当前的日子
CURTIME()或CURRENT_TIME() 重返当前的时间
DATE_ADD(date,INTE途乐VAL int
keyword)重临日期date加上间隔时间int的结果(int必须依照重点字展开格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL
6 MONTH);
DATE_FOHighlanderMAT(date,fmt)  根据钦点的fmt格式格式化日期date值
DATE_SUB(date,INTELX570VAL int
keyword)再次回到日期date加上间隔时间int的结果(int必须遵照重点字展开格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL
6 MONTH);
DAYOFWEEK(date)   再次来到date所代表的一礼拜中的第几天(一~7)
DAYOFMONTH(date)  重回date是三个月的第几天(一~31)
DAYOFYEAEnclave(date)   重临date是一年的第几天(1~366)
DAYNAME(date)   重返date的星期名,如:SELECT DAYNAME(CU讴歌ZDXRENT_DATE);
FROM_UNIXTIME(ts,fmt)  遵照钦命的fmt格式,格式化UNIX岁月戳ts
HOULAND(time)   再次来到time的时辰值(0~23)
MINUTE(time)   再次回到time的分钟值(0~59)
MONTH(date)   重回date的月份值(1~12)
MONTHNAME(date)   重临date的月度名,如:SELECT
MONTHNAME(CU哈弗RENT_DATE);
NOW()    再次来到当前的日期和时间
QUAOdysseyTEPAJERO(date)   再次回到date在一年中的季度(一~4),如SELECT
QUARTER(CURRENT_DATE);
WEEK(date)   再次来到日期date为一年中第几周(0~53)
YEA奥德赛(date)   再次来到日期date的年份(一千~9999)
某些示范:

五、加密函数
AES_ENCLANDYPT(str,key) 
重临用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENC昂科威YPT的结果是3个二进制字符串,以BLOB类型存款和储蓄
AES_DECKugaYPT(str,key) 
重返用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)   使用key作为密钥解密加密字符串str
ENC宝马X5YPT(str,salt)  
使用UNIXcrypt()函数,用关键词salt(二个方可惟一鲜明口令的字符串,就像是钥匙一样)加密字符串str
ENCODE(str,key)  
使用key作为密钥加密字符串str,调用ENCODE()的结果是3个二进制字符串,它以BLOB类型存款和储蓄
MD5()    计算字符串str的MD5校验和
PASSWO奥迪Q3D(str)  
重回字符串str的加密版本,那么些加密进程是不可反败为胜的,和UNIX密码加密进度采纳分歧的算法。
SHA()    计算字符串str的平安散列算法(SHA)校验和
示例:

玖、系统音信函数
DATABASE()   重回当前数码库名
BENCHMA昂CoraK(count,expr)  将表明式expr重复运转count次
CONNECTION_ID()   重返当前客户的连年ID
FOUND_ROWS()   重临最后一个SELECT查询举行搜索的总公司数
USER()或SYSTEM_USE中华V()  重回当前登6用户名
VEEscortSION()   再次回到MySQL服务器的本子
示例:
SELECT DATABASE(),VERSION(),USER();
SELECTBENCHMARK(9999999,LOG(RAND()*PI()));#该例中,MySQL计算LOG(RAND()*PI())表达式9999999次。

这几个函数的率先个是IFNULL(),它有五个参数,并且对第三个参数进行判定。若是第一个参数不是NULL,函数就会向调用者重返第贰个参数;假设是NULL,将回来第1个参数。
如:SELECT IFNULL(1,2), IFNULL(NULL,10), IFNULL(4*NULL,’false’);

代码如下:

复制代码 代码如下:

 

NULLIF()函数将会检查提供的多少个参数是还是不是等于,要是相等,则赶回NULL,假若不等于,就再次回到第12个参数。
如:SELECT NULLIF(1,1),NULLIF(‘A’,’B’),NULLIF(2+3,4+1);

获取当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);

SELECT ENCRYPT(‘root’,’salt’);
SELECT ENCODE(‘xufeng’,’key’);
SELECT DECODE(ENCODE(‘xufeng’,’key’),’key’);#加解密放在一起
SELECT AES_ENCRYPT(‘root’,’key’);
SELECT AES_DECRYPT(AES_ENCRYPT(‘root’,’key’),’key’);
SELECT MD5(‘123456’);
SELECT SHA(‘123456’);

小说转自

和众多脚本语言提供的IF()函数1样,MySQL的IF()函数也得以创立多少个大约的标准化测试,那些函数有多个参数,第三个是要被判定的表达式,假诺表明式为真,IF()将会回到第三个参数,就算为假,IF()将会回来第多少个参数。
如:SELECT IF(1<10,2,3),IF(56>100,’true’,’false’);

回到八个日期值之间的差值(月数):SELECT PEEnclaveIOD_DIFF(200302,199802);

陆、控制流函数
MySQL有六个函数是用来拓展规范操作的,这一个函数能够达成SQL的条件逻辑,允许开发者将1些应用程序业务逻辑转换成数据库后台。

未经整理

IF()函数在唯有几种大概结果时才适合利用。但是,在切切实实世界中,大家兴许发今后尺度测试中会须要四个分支。在那种情景下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程1样。
CASE函数的格式有个别复杂,平常如下所示:
CASE [expression to be evaluated]
WHEN [val 1] THEN [result 1]
WHEN [val 2] THEN [result 2]
WHEN [val 3] THEN [result 3]
……
WHEN [val n] THEN [result n]
ELSE [default result]
END
那里,第3个参数是要被判定的值或表明式,接下去的是1雨后苦笋的WHEN-THEN块,每1块的首先个参数钦点要比较的值,借使为真,就赶回结果。全体的
WHEN-THEN块将以ELSE块甘休,当END甘休了颇具外部的CASE块时,就算前面的每三个块都不包容就会重回ELSE块内定的默许结果。假若未有钦定ELSE块,而且装有的WHEN-THEN相比较都不是真,MySQL将会回去NULL。
CASE函数还有别的1种句法,有时利用起来格外有益,如下:
CASE
WHEN [conditional test 1] THEN [result 1]
WHEN [conditional test 2] THEN [result 2]
ELSE [default result]
END
这种条件下,重临的结果有赖于相应的原则测试是或不是为真。
示例:
mysql>SELECT CASE ‘green’ 
      WHEN ‘red’ THEN ‘stop’ 
      WHEN ‘green’ THEN ‘go’ END;

 

MySQL控制流函数: CASE WHEN[test1] THEN [result1]…ELSE [default]
END假若testN是真,则赶回resultN,不然再次来到default
CASE [test] WHEN[val1] THEN [result]…ELSE [default]END 
要是test和valN相等,则赶回resultN,不然重回default
IF(test,t,f)   倘使test是真,重返t;不然重临f
IFNULL(arg一,arg贰) 倘若arg一不是空,重返arg一,不然再次来到arg二
NULLIF(arg一,arg二) 假诺arg1=arg二赶回NULL;不然重临arg一
那一个函数的第多个是IFNULL(),它有七个参数,并且对第三个参数进行判断。假诺第多少个参数不是NULL,函数就会向调用者重临第贰个参数;假设是NULL,将赶回第3个参数。

 

SELECT CASE 9 WHEN 1 THEN ‘a’ WHEN 2 THEN ‘b’ ELSE ‘N/A’ END;
SELECT CASE WHEN (2+2)=4 THEN ‘OK’ WHEN (2+2)<>4 THEN ‘not OK’ END
AS STATUS;
SELECT Name,IF((IsActive = 1),’已激活’,’未激活’) AS RESULT FROM
UserLoginInfo;
SELECT fname,lname,(math+sci+lit) AS total,
CASE WHEN (math+sci+lit) < 50 THEN ‘D’
WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN ‘C’
WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN ‘B’
ELSE ‘A’ END 
AS grade FROM marks;

在Mysql中总结年龄:
SELECT
DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)),’%Y’)+0 AS
age FROM employee;
这么,假设Brithday是今后的年月日的话,总括结果为0。
上面包车型地铁SQL语句计算职员和工人的相对化年龄,即当Birthday是前景的日期时,将取得负值。
SELECT DATE_FORMAT(NOW(), ‘%Y’) – DATE_FORMAT(birthday, ‘%Y’)
-(DATE_FORMAT(NOW(), ’00-%m-%d’) <DATE_FORMAT(birthday,
’00-%m-%d’)) AS age from employee

如:SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,’false’);
NULLIF()函数将会检查提供的五个参数是不是等于,假如相等,则赶回NULL,假若不等于,就回来第二个参数。

 

SELECT IF(ENCRYPT(‘sue’,’ts’)=upass,’allow’,’deny’) AS LoginResult FROM
users WHERE uname = ‘sue’;#贰个登陆验证

伍、加密函数
AES_ENC猎豹CS六YPT(str,key) 
再次来到用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENC安德拉YPT的结果是二个二进制字符串,以BLOB类型存款和储蓄
AES_DEC奥迪Q3YPT(str,key) 
再次回到用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)   使用key作为密钥解密加密字符串str
ENC大切诺基YPT(str,salt)  
使用UNIXcrypt()函数,用关键词salt(二个方可惟一分明口令的字符串,就像钥匙①样)加密字符串str
ENCODE(str,key)  
使用key作为密钥加密字符串str,调用ENCODE()的结果是3个二进制字符串,它以BLOB类型存款和储蓄
MD5()    总括字符串str的MD五校验和
PASSWOTiggoD(str)  
重回字符串str的加密版本,这些加密进度是不可转败为胜的,和UNIX密码加密过程使用分歧的算法。
SHA()    总结字符串str的景德镇散列算法(SHA)校验和
示例:

如:SELECT NULLIF(1,1),NULLIF(‘A’,’B’),NULLIF(2+3,4+1);
和许多脚本语言提供的IF()函数一样,MySQL的IF()函数也足以建立2个简单的尺度测试,这么些函数有多个参数,第3个是要被判定的表明式,假若表明式为真,IF()将会回来第一个参数,如果为假,IF()将会回去第八个参数。

七、格式化函数
DATE_FOKoleosMAT(date,fmt)   依据字符串fmt格式化日期date值
FOCR-VMAT(x,y)    把x格式化为以逗号隔断的数字类别,y是结果的小数位数
INET_ATON(ip)    重临IP地址的数字代表
INET_NTOA(num)    再次来到数字所表示的IP地址
TIME_FOOdysseyMAT(time,fmt)   依据字符串fmt格式化时间time值
个中最简便的是FOPAJEROMAT()函数,它能够把大的数值格式化为以逗号间隔的易读的行列。
示例:
SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),’%W,%D %M %Y %r’);
SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’);
SELECT DATE_FORMAT(19990330,’%Y-%m-%d’);
SELECT DATE_FORMAT(NOW(),’%h:%i %p’);
SELECT INET_ATON(‘10.122.89.47’);
SELECT INET_NTOA(175790383);

代码如下:

如:SELECTIF(1<10,2,3),IF(56>100,’true’,’false’);
IF()函数在唯有三种大概结果时才适合利用。但是,在切切实实世界中,大家只怕发现在规范测试中会须求多个分支。在那种情景下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程1样。
CASE函数的格式有个别复杂,平常如下所示:

捌、类型转化函数
为了拓展数据类型转化,MySQL提供了CAST()函数,它能够把1个值转化为内定的数据类型。类型有:BINALANDY,CHAHighlander,DATE,TIME,DATETIME,SIGNED,UNSIGNED
示例:
SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);

SELECT ENCRYPT(‘root’,’salt’);
SELECT ENCODE(‘xufeng’,’key’);
SELECT DECODE(ENCODE(‘xufeng’,’key’),’key’);#加解密放在1起
SELECT AES_ENCRYPT(‘root’,’key’);
SELECT AES_DECRYPT(AES_ENCRYPT(‘root’,’key’),’key’);
SELECT MD5(‘123456’);
SELECT SHA(‘123456’);

复制代码 代码如下:

玖、系统消息函数
DATABASE()    再次来到当前数量库名
BENCHMAOdysseyK(count,expr)   将表明式expr重复运维count次
CONNECTION_ID()    再次来到当前客户的连接ID
FOUND_ROWS()    重返最终一个SELECT查询进行搜索的总店数
USER()或SYSTEM_USEENCORE()   再次回到当前登6用户名
VEKoleosSION()    重临MySQL服务器的本子
示例:
SELECT DATABASE(),VERSION(),USER();
SELECT
BENCHMARK(9999999,LOG(RAND()*PI()));#该例中,MySQL计算LOG(RAND()*PI())表达式9999999次。

 

CASE [expression to be evaluated]
WHEN [val 1] THEN [result 1]
WHEN [val 2] THEN [result 2]
WHEN [val 3] THEN [result 3]
……
WHEN [val n] THEN [result n]
ELSE [default result]
END

 

六、控制流函数
MySQL有陆个函数是用来进展标准化操作的,那几个函数能够完结SQL的条件逻辑,允许开发者将1些应用程序业务逻辑转换来数据库后台。

此处,第2个参数是要被判定的值或表达式,接下去的是壹雨后春笋的WHEN-THEN块,每一块的第多少个参数钦定要比较的值,借使为真,就回去结果。全体的WHEN-THEN块将以ELSE块结束,当END结束了颇具外部的CASE块时,要是前方的每一个块都不兼容就会回到ELSE块钦赐的暗许结果。即使未有钦定ELSE块,而且具备的WHEN-THEN比较都不是真,MySQL将会回来NULL。
CASE函数还有此外一种句法,有时利用起来非常有利于,如下:
CASE

转载于:

MySQL控制流函数: CASE WHEN[test1] THEN [result1]…ELSE [default]
END假设testN是真,则赶回resultN,不然重回default
CASE [test] WHEN[val1] THEN [result]…ELSE [default]END 
假诺test和valN相等,则赶回resultN,不然再次回到default
IF(test,t,f)   假设test是真,再次回到t;不然重回f
IFNULL(arg一,arg二) 假若arg一不是空,重临arg一,不然再次来到arg2
NULLIF(arg一,arg二) 借使arg一=arg1次到NULL;不然重临arg一
这几个函数的率先个是IFNULL(),它有多个参数,并且对第二个参数进行判断。即便第3个参数不是NULL,函数就会向调用者再次来到第三个参数;借使是NULL,将赶回第叁个参数。

复制代码 代码如下:

如:SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,’false’);
NULLIF()函数将会检查提供的七个参数是还是不是等于,固然相等,则赶回NULL,假设不等于,就赶回第二个参数。

WHEN [conditional test 1] THEN [result 1]
WHEN [conditional test 2] THEN [result 2]
ELSE [default result]
END

如:SELECT NULLIF(1,1),NULLIF(‘A’,’B’),NULLIF(2+3,4+1);
和无数脚本语言提供的IF()函数壹样,MySQL的IF()函数也足以成立二个不难的尺度测试,那么些函数有多少个参数,第1个是要被判定的表达式,若是表明式为真,IF()将会回去第二个参数,若是为假,IF()将会回到第三个参数。

那种规格下,重临的结果取决于相应的原则测试是或不是为真。
示例:

如:SELECTIF(1<10,2,3),IF(56>100,’true’,’false’);
IF()函数在唯有三种大概结果时才适合接纳。可是,在现实世界中,我们兴许发未来条件测试中会须求八个支行。在那种状态下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程1样。
CASE函数的格式某些复杂,平常如下所示:

复制代码 代码如下:

代码如下:

mysql>SELECT CASE ‘green’
     WHEN ‘red’ THEN ‘stop’
     WHEN ‘green’ THEN ‘go’ END;
SELECT CASE 9 WHEN 1 THEN ‘a’ WHEN 2 THEN ‘b’ ELSE ‘N/A’ END;
SELECT CASE WHEN (2+2)=4 THEN ‘OK’ WHEN(2+2)<>4 THEN ‘not OK’ END
ASSTATUS;
SELECT Name,IF((IsActive = 1),’已激活’,’未激活’) AS RESULT
FROMUserLoginInfo;
SELECT fname,lname,(math+sci+lit) AS total,
CASE WHEN (math+sci+lit) < 50 THEN ‘D’
WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN ‘C’
WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN ‘B’
ELSE ‘A’ END
AS grade FROM marks;
SELECT IF(ENCRYPT(‘sue’,’ts’)=upass,’allow’,’deny’) AS LoginResultFROM
users WHERE uname = ‘sue’;#贰个登6验证

CASE [expression to be evaluated]
WHEN [val 1] THEN [result 1]
WHEN [val 2] THEN [result 2]
WHEN [val 3] THEN [result 3]
……
WHEN [val n] THEN [result n]
ELSE [default result]
END

柒、格式化函数
DATE_FO福特ExplorerMAT(date,fmt)  遵照字符串fmt格式化日期date值
FOHavalMAT(x,y)   把x格式化为以逗号隔断的数字体系,y是结果的小数位数
INET_ATON(ip)   再次来到IP地址的数字代表
INET_NTOA(num)   再次来到数字所代表的IP地址
TIME_FOXC60MAT(time,fmt)  依据字符串fmt格式化时间time值
其间最简便易行的是FOLX570MAT()函数,它能够把大的数值格式化为以逗号间隔的易读的种类。
示例:

此处,第3个参数是要被判定的值或表明式,接下去的是一雨后苦笋的WHEN-THEN块,每1块的率先个参数内定要比较的值,倘若为真,就赶回结果。全体的WHEN-THEN块将以ELSE块甘休,当END截至了拥有外部的CASE块时,假诺面前的每一个块都不包容就会再次回到ELSE块钦点的暗许结果。若是未有内定ELSE块,而且富有的WHEN-THEN比较都不是真,MySQL将会回去NULL。
CASE函数还有其它一种句法,有时利用起来相当有益,如下:
CASE

复制代码 代码如下:

 代码如下:

SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),’%W,%D %M %Y %r’);
SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’);
SELECT DATE_FORMAT(19990330,’%Y-%m-%d’);
SELECT DATE_FORMAT(NOW(),’%h:%i %p’);
SELECT INET_ATON(‘10.122.89.47’);
SELECT INET_NTOA(175790383);

WHEN [conditional test 1] THEN [result 1]
WHEN [conditional test 2] THEN [result 2]
ELSE [default result]
END

捌、类型转化函数
为了拓展数据类型转化,MySQL提供了CAST()函数,它能够把一个值转化为钦赐的数据类型。类型有:BINA翼虎Y,CHAHaval,DATE,TIME,DATETIME,SIGNED,UNSIGNED
示例:

那种规则下,重返的结果取决于相应的口径测试是或不是为真。
示例:

复制代码 代码如下:

代码如下:

SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);

mysql>SELECT CASE ‘green’
     WHEN ‘red’ THEN ‘stop’
     WHEN ‘green’ THEN ‘go’ END;
SELECT CASE 9 WHEN 1 THEN ‘a’ WHEN 2 THEN ‘b’ ELSE ‘N/A’ END;
SELECT CASE WHEN (2+2)=4 THEN ‘OK’ WHEN(2+2)<>4 THEN ‘not OK’ END
ASSTATUS;
SELECT Name,IF((IsActive = 1),’已激活’,’未激活’) AS RESULT
FROMUserLoginInfo;
SELECT fname,lname,(math+sci+lit) AS total,
CASE WHEN (math+sci+lit) < 50 THEN ‘D’
WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN ‘C’
WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN ‘B’
ELSE ‘A’ END
AS grade FROM marks;
SELECT IF(ENCRYPT(‘sue’,’ts’)=upass,’allow’,’deny’) AS LoginResultFROM
users WHERE uname = ‘sue’;#2个登陆验证

玖、系统音信函数
DATABASE()   重回当前多少库名
BENCHMA奥德赛K(count,expr)  将表明式expr重复运维count次
CONNECTION_ID()   重回当前客户的一而再ID
FOUND_ROWS()   重临最终1个SELECT查询实行查找的母公司数
USER()或SYSTEM_USE宝马X5()  重返当前登6用户名
VE福睿斯SION()   再次来到MySQL服务器的本子
示例:

 

复制代码 代码如下:

7、格式化函数
DATE_FOLacrosseMAT(date,fmt)  依据字符串fmt格式化日期date值
FOEscortMAT(x,y)   把x格式化为以逗号隔绝的数字种类,y是结果的小数位数
INET_ATON(ip)   再次回到IP地址的数字代表
INET_NTOA(num)   重返数字所代表的IP地址
TIME_FO普拉多MAT(time,fmt)  依照字符串fmt格式化时间time值
中间最简单易行的是FO昂CoraMAT()函数,它能够把大的数值格式化为以逗号间隔的易读的行列。
示例:

SELECT DATABASE(),VERSION(),USER();
SELECTBENCHMARK(9999999,LOG(RAND()*PI()));#该例中,MySQL计算LOG(RAND()*PI())表达式9999999次。

代码如下:

ABS(x) 再次回到x的相对化值 BIN(x)
再次来到x的二进制(OCT重返八进制,HEX再次回到十6进制) CEILING(x)
重临大于x的小不点儿整数值 EXP(x) 再次来到值…

SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),’%W,%D %M %Y %r’);
SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’);
SELECT DATE_FORMAT(19990330,’%Y-%m-%d’);
SELECT DATE_FORMAT(NOW(),’%h:%i %p’);
SELECT INET_ATON(‘10.122.89.47’);
SELECT INET_NTOA(175790383);

 

八、类型转化函数
为了实行数据类型转化,MySQL提供了CAST()函数,它能够把一个值转化为钦命的数据类型。类型有:BINA昂CoraY,CHA奥迪Q3,DATE,TIME,DATETIME,SIGNED,UNSIGNED
示例:

代码如下:

SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);

 

玖、系统音信函数
DATABASE()   重临当前数码库名
BENCHMA劲客K(count,expr)  将表达式expr重复运维count次
CONNECTION_ID()   重返当前客户的连接ID
FOUND_ROWS()   重返最终多个SELECT查询实行搜寻的总集团数
USER()或SYSTEM_USELacrosse()  再次回到当前登6用户名
VE牧马人SION()   再次回到MySQL服务器的本子
示例:

 代码如下:

SELECT DATABASE(),VERSION(),USER();
SELECTBENCHMARK(9999999,LOG(RAND()*PI()));#该例中,MySQL计算LOG(RAND()*PI())表达式9999999次。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website