码迷,mamicode.com
首页 > 数据库 > 详细

mysql常用函数

时间:2015-08-10 14:49:50      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:mysql

一:数学函数

SELECT GREATEST (2,3,4),GREATEST (1.1,3.2);

SELECT LEAST (2,3,4),LEAST (1.1,3.2);

 

FLOOR(X)

返回不大于X的最大整数值。

mysql> SELECT FLOOR(1.23);

       -> 1

mysql> SELECT FLOOR(-1.23);

       -> -2

 

LOG10(X)

返回X的基数为10的对数。

mysql> SELECT LOG10(2);

       -> 0.30102999566398

mysql> SELECT LOG10(100);

       -> 2

mysql> SELECT LOG10(-100);

       -> NULL

 

POW(X,Y) , POWER(X,Y)

返回X 的Y乘方的结果值。

mysql> SELECT POW(2,2);

       -> 4

mysql> SELECT POW(2,-2);

       -> 0.25

 

 

ROUND(X) ROUND(X,D)

返回参数X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D 位,可将 D 设为负值。

mysql> SELECT ROUND(-1.23);

       -> -1

mysql> SELECT ROUND(-1.58);

       -> -2

mysql> SELECT ROUND(1.58);

       -> 2

mysql> SELECT ROUND(1.298, 1);

       -> 1.3

mysql> SELECT ROUND(1.298, 0);

       -> 1

mysql> SELECT ROUND(23.298, -1);

       -> 20

二:聚合函数

SELECT * FROM core;

SELECT COUNT(*)FROM core;

SELECT MIN(math),MAX(physics) FROM core;

SELECT AVG(math) FROM core;

SELECT SUM(math) FROM core;

 

三:字符串函数

 

ASCII(str)

返回值为字符串str 的最左字符的数值。假如str为空字符串,则返回值为 0 。假如str 为NULL,则返回值为 NULL。 ASCII()用于带有从 0到255的数值的字符。

mysql> SELECT ASCII(‘2‘);

       -> 50

 

BIT_LENGTH(str)

返回值为二进制的字符串str 长度。

mysql> SELECT BIT_LENGTH(‘text‘);

       -> 32

 

CHAR(N,... [USING charset])

CHAR()将每个参数N理解为一个整数,其返回值为一个包含这些整数的代码值所给出的字符的字符串。NULL值被省略。

mysql> SELECT CHAR(77,121,83,81,‘76‘);

       -> ‘MySQL‘

mysql> SELECT CHAR(77,77.3,‘77.3‘);

       -> ‘MMM‘

 

CONCAT(str1,str2,...)                       

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

 

mysql> SELECT CONCAT(‘My‘, ‘S‘, ‘QL‘);

       -> ‘MySQL‘

mysql> SELECT CONCAT(‘My‘, NULL, ‘QL‘);

       -> NULL

mysql> SELECT CONCAT(14.3);

       -> ‘14.3‘

 

INSTR(str,substr)

返回字符串 str 中子字符串的第一个出现位置。这和LOCATE()的双参数形式相同,除非参数的顺序被颠倒。 

mysql> SELECT INSTR(‘foobarbar‘, ‘bar‘);

       -> 4

mysql> SELECT INSTR(‘xbar‘, ‘foobar‘);

       -> 0

 

LEFT(str,len)

返回从字符串str 开始的len 最左字符。

mysql> SELECT LEFT(‘foobarbar‘, 5);

       -> ‘fooba‘

 

LENGTH(str)

返回值为字符串str 的长度,单位为字节。一个多字节字符算作多字节。这意味着对于一个包含5个2字节字符的字符串, LENGTH() 的返回值为 10, 而 CHAR_LENGTH()的返回值则为5。

mysql> SELECT LENGTH(‘text‘);

        -> 4

 

四:时间日期函数

ADDDATE(date,INTERVAL expr type)ADDDATE(expr,days)

当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE() 则是DATE_SUB()的同义词。对于INTERVAL参数上的信息,请参见关于DATE_ADD()的论述。

mysql> SELECT DATE_ADD(‘1998-01-02‘,INTERVAL 31 DAY);

       -> ‘1998-02-02‘

mysql> SELECT ADDDATE(‘1998-01-02‘,INTERVAL 31 DAY);

       -> ‘1998-02-02‘

若 days 参数只是整数值,则 MySQL 5.1将其作为天数值添加至 expr。

mysql> SELECT ADDDATE(‘1998-01-02‘, 31);

       -> ‘1998-02-02‘

 

ADDTIME(expr,expr2)

ADDTIME()将 expr2添加至expr 然后返回结果。 expr 是一个时间或时间日期表达式,而expr2 是一个时间表达式。

 

mysql> SELECT ADDTIME(‘1997-12-3123:59:59.999999‘,

   -> ‘1 1:1:1.000002‘);

   -> ‘1998-01-02 01:01:01.000001‘

 

mysql> SELECT ADDTIME(‘01:00:00.999999‘,‘02:00:00.999998‘);

       -> ‘03:00:01.999997‘

 

五:流程控制函数

前面为空,返回后面,后面为空返回前面

SELECTIFNULL(1,10),IFNULL(NULL,3),IFNULL(3,NULL);

 

判断值是否相等,相等返回空,不等返回第一个

SELECTNULLIF(1,1),NULLIF(‘a‘,‘c‘),NULLIF(3+1,2+2);

 

条件为真返回第一个,为假返回第二个

SELECTIF(1<10,2,3),IF(1>10,‘true‘,‘false‘);

 

输出结果go

SELECT CASE ‘green‘

WHEN ‘red‘ THEN ‘stop‘

WHEN ‘green‘ THEN ‘go‘

END;

 

输出结果n/a

SELECT CASE 9

WHEN 1 THEN ‘a‘

WHEN 2 THEN ‘b‘

ELSE ‘n/a‘

END;

 

输出结果:ok

SELECT CASE

WHEN (2+2)=4 THEN ‘ok‘

WHEN (2+2)<>4 THEN ‘not ok‘

END AS STATUS;

版权声明:博主原创文章,转载请说明出处。http://blog.csdn.net/dzy21

mysql常用函数

标签:mysql

原文地址:http://blog.csdn.net/dzy21/article/details/47398209

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!