项目常用的几个mysql函数

1.find_in_set函数
find_in_set(str,strlist); str是一个字符串 strlist是字符串列表--一个有多个子链被“,”分开的字符串
有多种情况:
a.str为null 或者 strlist为null时返回null find_in_set(null,"1,2") 返回null
b.如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算
c.str不在strlist或者为空字符串 时返回0 str中有“,”将报错
select FIND_IN_SET('2','1,2');返回2
select FIND_IN_SET('6','1'); 返回0
SELECT FIND_IN_SET('b','a,b,c,d') str为b在strlist中的第二个位置所以返回2

d.特殊情况: select * from user where FIND_IN_SET(id,"1,3,4,5,8");
类似于 select * from user where id in(1,3,4,5,8);
2.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)
%p AM 或 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 位
3.FROM_UNIXTIME 和 UNIX_TIMESTAMP 是相反的时间函数
FROM_UNIXTIME是将秒数指定格式转化成日期 SELECT FROM_UNIXTIME( 1511280000, '%Y年%m月%d日') 2017年11月22日
UNIX_TIMESTAMP是将日期转化成秒数 SELECT UNIX_TIMESTAMP('2017-11-22') ; 1511280000

posted @ 2017-11-22 11:05  1master5  阅读(241)  评论(1编辑  收藏  举报