• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql惯用函数使用总结_mysql

mysql 搞代码 7年前 (2018-06-07) 188次浏览 已收录 0个评论

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) …

 

 

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

欢迎大家阅读《mysql惯用函数使用总结_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql惯用函数使用总结_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址