有兩個思路
創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站制作、做網站、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的清豐網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
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;
但這種只能按指定排序,你這種多種排序,有困難。
可以看看上面兩種方法結合或許有更好的方法。
select * from tab order by date DESC,table_id DESC。
在數據庫中,輸入這些就可以按時間排序。
MySQL 是一個關系型數據庫,由瑞典?MySQL AB 公司開發,目前屬于?Oracle?旗下公司。MySQL 最流行的關系型數據庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之一。MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL 所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策(本詞條"授權政策"),它分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。由于其社區版的性能卓越,搭配?PHP?,Linux和?Apache?可組成良好的開發環境,經過多年的web技術發展,在業內被廣泛使用的一種web服務器解決方案之一,稱之為LAMP。
例子語句(表名TAB1,時間字段D1,D2,D3,D4,D5):
SELECT GREATEST(D1,D2,D3,D4,D5), ......
FROM TAB1
ORDER BY 1 DESC
說明,需要使用GREATEST函數,不能用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://vcdvsql.cn/article26/hepgcg.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、、品牌網站制作、服務器托管、企業建站、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯