`
Javahuhui
  • 浏览: 78800 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql常用函数使用总结

阅读更多

mysql TIMESTAMPDIFF和TIMESTAMPADD说明

 

1.TIMESTAMPDIFF

语法:

TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。

说明:

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

 

FRAC_SECOND。表示间隔是毫秒

SECOND。秒

MINUTE。分钟

HOUR。小时

DAY。天

WEEK。星期

MONTH。月

QUARTER。季度

YEAR。年

 

2.TIMESTAMPADD

语法:

TIMESTAMPADD(interval,int_expr,datetime_expr)

说明:

将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。式中的interval和上文中列举的取值是一样的。

 

 

mysql case when then else end说明

例:

select id,(case when type=1 then '普通用户'

 when type=2 then 'VIP用户'

 when type=3 then '管理员'

 else '其它' end) type

 from user

 

分类统计使用场景:

select sum(case when type = 1 then 1 else 0 end) 'a',

sum(case when type = 2 then 1 else 0 end) 'b',

sum(case when type = 3 then 1 else 0 end) 'c',

count(id) total

from user

 

 

mysql group_concat

函数作用: 当SQL语句中使用到....group by....的时候, 该函数能够将相同的行组合起来。

函数语法:

group_concat( [DISTINCT]  要连接的字段   [Order BY 排序字段 ASC/DESC]   [Separator '分隔符'] )

例:

select u.id,u.name username,group_concat(o.number SEPARATOR ';') numbers

from user u

left join order o on o.userid=u.id

===========================================

id | username | numbers

1  | huhui    | order1;order2

 

 

mysql concat

使用方法:

CONCAT(str1,str2,…)  

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

注意:

如果所有参数均为非二进制字符串,则结果为非二进制字符串。 

如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:

SELECT CONCAT(CAST(int_col AS CHAR), char_col) ...

 

concat_ws

CONCAT_WS(separator,str1,str2,...)

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

如连接后以逗号分隔 
mysql> select concat_ws(',','11','22','33');

+-------------------------------+
| concat_ws(',','11','22','33') |
+-------------------------------+
| 11,22,33  |
+-------------------------------+

 

 

mysql distinct

select结果值去重,例:一个user表

id | name

1  | a

2  | b

3  | b

4  | c

 

select distince name from user;

================================

name

a

b

c

 

若想把user表的其它字段也显示出来,则建议使用group by(group by比distinct查询速度快):

select id,name from user group by name;

 

当然也有些场景会使用到:

select a.*,group_concat(distinct b.name) from ...

 

 

mysql DATE_FORMAT

定义和用法

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。

语法

DATE_FORMAT(date,format)

date 参数是合法的日期。format 规定日期/时间的输出格式。

可以使用的格式有:

格式描述

%a缩写星期名

%b缩写月名

%c月,数值

%D带有英文前缀的月中的天

%d月的天,数值(00-31)

%e月的天,数值(0-31)

%f微秒

%H小时 (00-23)

%h小时 (01-12)

%I小时 (01-12)

%i分钟,数值(00-59)

%j年的天 (001-366)

%k小时 (0-23)

%l小时 (1-12)

%M月名

%m月,数值(00-12)

%pAM 或 PM

%r时间,12-小时(hh:mm:ss AM 或 PM)

%S秒(00-59)

%s秒(00-59)

%T时间, 24-小时 (hh:mm:ss)

%U周 (00-53) 星期日是一周的第一天

%u周 (00-53) 星期一是一周的第一天

%V周 (01-53) 星期日是一周的第一天,与 %X 使用

%v周 (01-53) 星期一是一周的第一天,与 %x 使用

%W星期名

%w周的天 (0=星期日, 6=星期六)

%X年,其中的星期日是周的第一天,4 位,与 %V 使用

%x年,其中的星期一是周的第一天,4 位,与 %v 使用

%Y年,4 位

%y年,2 位

 

例:

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')

DATE_FORMAT(NOW(),'%m-%d-%Y')

DATE_FORMAT(NOW(),'%d %b %y')

DATE_FORMAT(NOW(),'%d %b %Y %T:%f')

 

 

mysql having

SQL标准要求HAVING必须引用GROUP BY子句中的列或用于总计函数中的列。

例:查询只有一张订单的所有用户服务

select u.id,u.name from user u

left join order o on o.userid=u.id

group by u.id,u.name

having count(o.id)=1

 

locate(substr,str)

判断一个字符串是否包含某字符串,若包含返回>0的数,否则返回0。

例:查询用户名中不包含'hu'的数据

select id,name from userinfo where locate('hu',name)=0;

 

exists

用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。

not exists则查询不存在。

 SELECT * FROM t1  

 WHERE EXISTS(SELECT 1 FROM t2 WHERE t2.field1 = t1.field1)

 

update join

表关联更新

UPDATE T1

[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1

SET T1.C2 = T2.C2, T2.C3 = expr

WHERE condition

 

insert select

INSERT INTO t1 (field1,field2) SELECT field1,field2 FROM t2

 

in 和 find_in_set

例:

INSERT INTO `test` VALUES (1, 'name', 'dd,aa,cc');

INSERT INTO `test` VALUES (2, 'name2', 'ee,aa,bb');

INSERT INTO `test` VALUES (3, 'name3', 'aa,ff,xx');

 

test1:sql = select * from `test` where 'aa' IN (`list`);

得到结果空值.

test2:sql = select * from `test` where FIND_IN_SET('aa',`list`);

得到三条数据。

 

分享到:
评论

相关推荐

    MySQL关于自定义函数以及常用函数的组织点的总结

    MySQL关于自定义函数以及常用函数的组织点的总结(例如日期函数)

    Mysql常用函数列表

    MYSQL中常用的函数非常的多,反正我是记不住,此文档中本人自己总结的,送给那些正在学习MYSQL的朋友们,当你们想不起来要用的函数的格式,就可以打来这个文档,希望可以帮到你们!

    MySQL常用类型转换函数总结(推荐)

    连接字符串常用:concat函数。如sql查询条件的like查询, AND c.name like concat(#{param.name},’%’) 将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80’  2、Cast函数;CONVERT函数...

    php、js常用函数总结

    php、js、jquery、mysql、正则、文件处理函数、图像处理函数、时间函数,常用函数总结

    MySQL 常用函数总结

    主要介绍了一些MySQL 常用函数的总结,文中讲解非常细致,帮助大家更好的学习mysql,感兴趣的朋友可以了解下

    mysql日期函数总结

    mysql日期函数 比较常用的日期方法总结 希望大家批评指正

    mysql常用函数实例总结【聚集函数、字符串、数值、时间日期处理等】

    本文实例讲述了mysql常用函数。分享给大家供大家参考,具体如下: 本文内容: mysql函数的介绍 聚集函数 avg count max min sum 用于处理字符串的函数 合并字符串函数:concat(str1,str2,str3…) 比较字符...

    MySQL 日期时间函数常用总结

    获得当前日期+时间(date + time)1.1 函数:now()  相关函数:current_timestamp(),localtime(),localtimestamp()  举例说明:  2.... MySQL dayof…  函数:dayofweek(), dayofmonth()

    mysql函数总结

    MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的...

    MySQL数学函数简明总结

    主要介绍了MySQL数学函数简明总结,本文总结了大多数常用的MySQL数学函数,并给出了使用实例,需要的朋友可以参考下

    MySQL5学习笔记

    MySQL常用函数 6 MySQL数据引擎 7 MySQL应用 9 存储过程 9 MySQL存储过程之java调用 9 MySQL存储过程实现动态查询 12 MySQL应用总结 12 MySQL数据管理 15 数据管理 15 MySQL数据导出 15 MySQL数据还原 15 MySQL灾难...

    php及MySQL常用知识整合

    PHP常用函数总结及MySQL知识纲要整合,可以查找更方便,学习更系统

    MYSQL常用命令大全

    MYSQL常用命令 1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 ...

    oracle 转mysql项目总结

    包含有3个文档:(1)oracle转mysql问题解决。(主要分事务处理,游标处理,存储过程方法调用,数组处理,异常处理等。) (2)oracle与mysql区别比较。 (主要包含:语法及结构...(3)ORACLE与MYSQL常用函数对比。

    mysql 常用命令用法总结脚本之家整理版

    一、启动与退出 1、进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可。此时的提示符是:mysql> 2、退出MySQL:quit或exit 二、库操作 1、、创建数据库 命令:create database...

    MySQL8.0窗口函数入门实践及总结

    主要给大家介绍了关于MySQL8.0窗口函数入门实践及总结的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MySQL8.0具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

Global site tag (gtag.js) - Google Analytics