有兩個(gè)思路
創(chuàng)新互聯(lián)專注于福鼎企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購(gòu)物商城網(wǎng)站建設(shè)。福鼎網(wǎng)站建設(shè)公司,為福鼎等地區(qū)提供建站服務(wù)。全流程按需求定制開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、按照各自的活動(dòng)狀態(tài)先排序,插入到臨時(shí)表,最后再u(mài)nion all所有結(jié)果集
create?temporary?table?tmp1
select?*?from?tb?where?活動(dòng)狀態(tài)='籌備中'?order?by?開(kāi)始時(shí)間;
create?temporary?table?tmp2
select?*?from?tb?where?活動(dòng)狀態(tài)='進(jìn)行中'?and?開(kāi)始時(shí)間?is?not?null?order?by?開(kāi)始時(shí)間;
create?temporary?table?tmp3
select?*?from?tb?where?活動(dòng)狀態(tài)='進(jìn)行中'?and?開(kāi)始時(shí)間?is?null;
create?temporary?table?tmp4
select?*?from?tb?where?活動(dòng)狀態(tài)='已結(jié)束'?order?by?開(kāi)始時(shí)間?desc;
(select?*?from?tmp1)
union?all
(select?*?from?tmp2)
union?all
(select?*?from?tmp3)
union?all
(select?*?from?tmp4)
2、通過(guò)field函數(shù)自定義排序
select * from tb order by field(活動(dòng)狀態(tài),'籌備中','進(jìn)行中','已結(jié)束') asc,開(kāi)始時(shí)間 asc;
但這種只能按指定排序,你這種多種排序,有困難。
可以看看上面兩種方法結(jié)合或許有更好的方法。
MySQL中排序輸出需要用order by。
如圖,test表中有如下數(shù)據(jù):
現(xiàn)在分別要求按ID正序和倒序輸出結(jié)果。
正序:
select?*?from?test?order?by?id;
結(jié)果:
倒序:
select?*?from?test?order?by?id?desc;
結(jié)果:
//搜索前10條記錄?
select * from table limit 10?
//倒序排列----以id做排序
select * from table order by id desc?
//正序排列----以id號(hào)排序
select * from table order by id asc?
//搜索前10條記錄并倒序排列?
select * from table order by id desc limit 10?
//limit 要放在后面