有兩個思路
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的清豐網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
1、按照各自的活動狀態(tài)先排序,插入到臨時表,最后再union all所有結(jié)果集
create?temporary?table?tmp1
select?*?from?tb?where?活動狀態(tài)='籌備中'?order?by?開始時間;
create?temporary?table?tmp2
select?*?from?tb?where?活動狀態(tài)='進行中'?and?開始時間?is?not?null?order?by?開始時間;
create?temporary?table?tmp3
select?*?from?tb?where?活動狀態(tài)='進行中'?and?開始時間?is?null;
create?temporary?table?tmp4
select?*?from?tb?where?活動狀態(tài)='已結(jié)束'?order?by?開始時間?desc;
(select?*?from?tmp1)
union?all
(select?*?from?tmp2)
union?all
(select?*?from?tmp3)
union?all
(select?*?from?tmp4)
2、通過field函數(shù)自定義排序
select * from tb order by field(活動狀態(tài),'籌備中','進行中','已結(jié)束') asc,開始時間 asc;
但這種只能按指定排序,你這種多種排序,有困難。
可以看看上面兩種方法結(jié)合或許有更好的方法。
select * from tab order by date DESC,table_id DESC。
在數(shù)據(jù)庫中,輸入這些就可以按時間排序。
MySQL 是一個關系型數(shù)據(jù)庫,由瑞典?MySQL AB 公司開發(fā),目前屬于?Oracle?旗下公司。MySQL 最流行的關系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件之一。MySQL 是一種關聯(lián)數(shù)據(jù)庫管理系統(tǒng),關聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL 所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL 軟件采用了雙授權(quán)政策(本詞條"授權(quán)政策"),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配?PHP?,Linux和?Apache?可組成良好的開發(fā)環(huán)境,經(jīng)過多年的web技術發(fā)展,在業(yè)內(nèi)被廣泛使用的一種web服務器解決方案之一,稱之為LAMP。
例子語句(表名TAB1,時間字段D1,D2,D3,D4,D5):
SELECT GREATEST(D1,D2,D3,D4,D5), ......
FROM TAB1
ORDER BY 1 DESC
說明,需要使用GREATEST函數(shù),不能用MAX,MAX是計算列最大值的。
-------------------------------------------方法1
select?*?from?(
select
tablename_tmp.*,
@rownum:=@rownum+1?,
if(time?=DATE_FORMAT(now(),'%Y-%m-%d?%H:00')?,@rank:=@rank+1,@rank:=0)?as?rank
from?(
select?*?from?tablename?order?by?time?desc
)
tablename_tmp?,
(select?@rownum?:=0?,?@ptime?:=?null?,@rank:=0)?a
)?a
order?by?rank?desc?,time?desc
---------------------------------------方法2
select?*?from?tablename?order?by?
(case?when?DATE_FORMAT(time?,'%k')=0?then?24?when??DATE_FORMAT(time?,'%k')*1=DATE_FORMAT(now(),'%k')*1??then?DATE_FORMAT(time?,'%k')?else?25?end)?,time?desc
題主測試一下?你這里的24點應該是第二天的00:00:00 ?。你這樣排有什么用處?
在MySQL中,可以指定按照多個字段進行排序。例如,可以使employee表按照d_id字段和age字段進行排序。排序過程中,先按照d_id字段進行排序,遇到d_id字段的值相等的情況時,再把d_id值相等的記錄按照age字段進行排序。
查詢employee表中的所有記錄,按照d_id字段的降序方式和age字段的升序方式進行排序。
當前名稱:mysql怎么按時間排序 mysql 按時間排序
新聞來源:http://jinyejixie.com/article26/hepgcg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、、品牌網(wǎng)站制作、服務器托管、企業(yè)建站、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)