2016-07-31 81 views
-1

最近我一直在觸底。1 | 18.07 | 0mysql查詢按不同優先級排序

我現在想要做的是按日期對數據庫條目的選擇進行「排序」,如果日期已過並且值X沒有改變,則將其附加到列表的頂部,並且如果該值在底部。

也許它更好地做出某種圖形解釋我的問題。

Entry | "date" | X 
1  | 10.07 | 0 
1  | 11.07 | 1 
1  | 12.07 | 1 
1  | 13.07 | 1 
1  | 14.07 | 1 
1  | 15.07 | 1 
1  | 16.07 | 1 
1  | 17.07 | 1 
1  | 18.07 | 0 
1  | 19.07 | 1 

這應該轉化爲

Entry | "date" | X 
1  | 19.07 | 1 
1  | 17.07 | 1 
1  | 16.07 | 1 
1  | 15.07 | 1 
1  | 14.07 | 1 
1  | 13.07 | 1 
1  | 12.07 | 1 
1  | 11.07 | 1 
1  | 18.07 | 0 
1  | 10.07 | 0 

是,即使可以用 「純」 MySQL的呢? 我一直試圖通過「排序」按日期工作,但那不是我最終想完成的。

SELECT * FROM table_entries ORDER BY start_date ASC LIMIT 25 

有一個偉大的日子

+0

'ORDER BY X DESC,起始日期DESC' –

+0

'起始日期ASC,X DESC' OR可能只有'start_date DESC'就足夠了 –

+0

這是什麼奇怪的日期? –

回答

0

如果我把它弄對了,你想按X值排序(在頂部有一個),然後按日期對它們排序。 您可以在您的查詢中使用
ORDER BY X,start_date
來實現。
您可以指定XASCDESCstart_date以獲得所需的效果
您查詢貴方覺得成爲這樣的事:
SELECT * FROM table_entries ORDER BY X DESC, start_date ASC LIMIT 25

+0

爲什麼你的人討厭評論這麼多 –

+1

答案不是評論,評論意在提問問題來澄清問題或答案 – magicleon

+0

非常感謝你,這對我幫助很大。但現在我需要一種方法來將項目「過期」(日期已過並且值未更改,因此X = 0)附加到頂部,而非EM下面的「過期」項目,也許圖像解釋更好[鏈接]( http://i.imgur.com/VxUCby4.png) – Alex

0

下單雙方 'x' 和 '日期' 字段。因此,所有記錄將按'x'排序,然後按日期排序。

SELECT * FROM table_entries ORDER BY x DESC, start_date DESC LIMIT 25 
+0

爲什麼人們討厭這麼多評論。 –