十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有两个思路
创新互联专注于福鼎企业网站建设,成都响应式网站建设公司,购物商城网站建设。福鼎网站建设公司,为福鼎等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
1、按照各自的活动状态先排序,插入到临时表,最后再union all所有结果集
create temporary table tmp1
select * from tb where 活动状态='筹备中' order by 开始时间;
create temporary table tmp2
select * from tb where 活动状态='进行中' and 开始时间 is not null order by 开始时间;
create temporary table tmp3
select * from tb where 活动状态='进行中' and 开始时间 is null;
create temporary table tmp4
select * from tb where 活动状态='已结束' order by 开始时间 desc;
(select * from tmp1)
union all
(select * from tmp2)
union all
(select * from tmp3)
union all
(select * from tmp4)
2、通过field函数自定义排序
select * from tb order by field(活动状态,'筹备中','进行中','已结束') asc,开始时间 asc;
但这种只能按指定排序,你这种多种排序,有困难。
可以看看上面两种方法结合或许有更好的方法。
MySQL中排序输出需要用order by。
如图,test表中有如下数据:
现在分别要求按ID正序和倒序输出结果。
正序:
select * from test order by id;
结果:
倒序:
select * from test order by id desc;
结果:
//搜索前10条记录
select * from table limit 10
//倒序排列----以id做排序
select * from table order by id desc
//正序排列----以id号排序
select * from table order by id asc
//搜索前10条记录并倒序排列
select * from table order by id desc limit 10
//limit 要放在后面