下面提供一个栗子给大家尝尝:
-- 创建测试表
create table if not exists 保单(保单号 varchar(10) primary key, 到期日 date)
-- 清空及插入测试数据
delete from 保单
insert into 保单 values
('001','2016-02-01'),
('002','2016-03-01'),
('003','2018-09-01'),
('004','2018-12-15'),
('005','2017-08-09'),
('006','2017-08-26')
-- 查看未排序前的情况
select * from 保单
-- 强制排序,将下个月到期的保单排在最前面
select * from 保单 order by case when
date_format(到期日,'%Y%m')=
date_format(date_add(now(),interval 1 month),'%Y%m')
then 0 else 1 end
运行效果请见附图
1、UNION2、若是innodb分表,则可以用merge处理。
直接搞一张专门针对统计数据用的汇总表
如果可能的话,不要采用分表的设计,采用表分区,这样就对于查询就不需要特殊处理了。规划好索引,性能应该不会有问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)