MYSQL常用函数使用备忘录(更新中...)

来源:互联网 发布:windows双系统 虚拟机 编辑:程序博客网 时间:2024/06/01 09:49

感脚最近记忆力不行了,好多MYSQL的常用用法都忘记了,现在开这个帖子将它们记录下来。。。


·GROUP_CONCAT()

该函数返回带有来自一个组的连接的非NULL值的字符串结果。

SELECT GROUP_CONCAT(pid) AS pids FROM table;

返回结果如:

1,2,2,3,4,4,5,6


增加关键字DISTINCT检索出每个唯一的输出记录

SELECT GROUP_CONCAT(DISTINCT pid) AS pids FROM table;
返回结果如:
1,2,3,4,5,6


·CONCAT()

该函数返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL

SELECT CONCAT('My', 'S', 'QL');
返回结果为:MySQL

SELECT CONCAT('My', NULL, 'QL');
返回结果为:NULL

·CONCAT_WS()

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

SELECT CONCAT_WS(',','First name','Second name','Last Name');
结果:'First name,Second name,Last Name'

SELECT CONCAT_WS(',','First name',NULL,'Last Name');
结果: 'First name,Last Name'

·FROM_UNIXTIMESTAMP()

将Unix时间转换为指定日期格式的

SELECT FROM_UNIXTIME(addtime, '%Y-%m-%d %H:%i:%s')  FROM table;
·UNIX_TIMESTAMP()

将日期时间格式转换为unix时间

SELECT UNIX_TIMESTAMP('2013-09-10 12:23:33');
·STRCMP()

判断两字符串,若所有的字符串均相同,则返回0,若根据当前分类次序,第一个参数小于第二个,则返回  -1,其它情况返回 1 。

SELECT STRCMP('test','test');


·IFNULL(expr1,expr2)

假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

SELECT IFNULL(1,0);-> 1SELECT IFNULL(NULL,10);-> 10SELECT IFNULL(1/0,10);-> 10 SELECT IFNULL(1/0,'yes');-> 'yes'

·NULLIF(expr1,expr2) 

如果expr1 = expr2  成立,那么返回值为NULL,否则返回值为 expr1。

SELECT NULLIF(1,1);-> NULLSELECT NULLIF(1,2);-> 1

·DATE(expr)
返回日期或时间日期表达式expr中的日期部分。

SELECT DATE('2003-12-31 01:02:03');-> '2003-12-31'

·DATEDIFF(expr,expr2)

返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。

SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');-> 1SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');-> -31

·FORMAT(X,D) 

将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。

SELECT FORMAT(12332.123456, 4);-> '12,332.1235'SELECT FORMAT(12332.1,4);-> '12,332.1000'SELECT FORMAT(12332.2,0);-> '12,332'

·FIND_IN_SET(str,strlist)

假如字符串str 在由N子链组成的字符串列表strlist中, 则返回值的范围在 1 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。

SELECT FIND_IN_SET('b','a,b,c,d');-> 2





原创粉丝点击