mysql 日常工作小计 及 表格换行实战

知识点、一

今天在统计数据时,想要用2个列表做数据排序

  1. 首先想到的 order by last_time and id desc 这种方式两个字段都是降序的
    但实际不能执行在5.6版本的数据库会抛出异常(and隔开哪个,第二个参数不起作用。)

正确方式: order by last_time desc,id desc

SELECT
   ee.id,ee.uid as euid,ee.enid,ee.`status`,(ee.start1+ee.start2+ee.start3) AS chengji,
   ct.title,ct.team_id,ct.id as cid,
   #us.realname as erealname,us.mobile as emobile,
   t.team_name,t.team_leader
   
   FROM `expert_entry`  AS ee
   INNER JOIN compet_teams AS ct ON ee.enid = ct.id
   #INNER JOIN users AS us ON ee.uid = us.id
   INNER JOIN teams AS t ON ct.team_id = t.id
   
   WHERE
   ee.cid=:cid
   AND ee.is_deleted = 0
   #AND chengji > 10
   GROUP BY ct.title
   ORDER BY chengji DESC , team_id asc
   LIMIT 300;

知识点、二

(ee.start1+ee.start2+ee.start3) AS chengji

在MySQL数据库查询时可对,多个可相加的列进行算数相加。(浮点数,int相加正常,string等类型未测试)是不是很方便!

知识点、三

SELECT DATE_FORMAT(u.created_at,'%Y') AS utime,count(*) FROM `users` AS u

WHERE DATE_FORMAT(u.created_at,'%Y') = '2020'

假设 u.created_at 字段值是 2020-06-19 03:31:48 这样时间类型

当以时间类型的字段值做统计条件时?比如统计2020年的新增会员人数,这个时候就用到这个

(u.created_at,'%Y') AS utime

这样时间的转换就好了

date_format(now(), '%Y-%m-%d');

时间转时间戳
unix_timestamp('2018-01-15 09:45:16');
时间戳转时间
mysql> select from_unixtime(1515980716)
时间格式化
from_unixtime(1515980716, '%Y-%m-%d %H:%i:%S')

当前系统72小时前的时间
NOW() - interval 72 hour

%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”

知识点、四

Excel换行实践

$data[$key]['指导教师'] = implode(PHP_EOL, array('姓名:'.$tutors[0]->realname,'手机:'.$tutors[0]->mobile,'邮箱:'.$tutors[0]->email,'院校:'.$tutors[0]->school) );

Excel::create('决赛各参赛队成员名单' . date("Y-m-d H_i_s",time()), function($excel) use($data) {
   $excel->sheet('决赛信息名单', function($sheet) use($data) {
		//getStyle("D:H") 表示重D to H的表格列区域设置文字换行
        $sheet->getStyle("D:H")->getAlignment()->setWrapText(true);
        $sheet->fromArray($data);
    });
})->export('xls');

更复杂的应用去查看源码喽。。。
日记一小,月集一大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值