2012-11-29 62 views
3

我期待基於表中的多列創建訂單 - 所有日期都相關。例如:我的列是:fee_duefee_2_due,fee_3_due - 它們都包含各種日期的結果。但是,我想創建一個組合所有列的訂單,因此fee_due可能是2012-11-03fee_2_due可能是2012-11-01fee_3_due可能是2012-11-02PHP MySQL按多個列排序

我的查詢需要是:

SELECT * 
FROM table_name 
ORDER BY [date] DESC 

......由此,從3列日加盟,形成一個訂單,不管他們在什麼列

希望是有道理和提前致謝。

+0

'SELECT * FROM table_name的 ORDER BY fee_due,fee_2_due DESC' – vlcekmi3

+0

是你希望通過三者的最早(或最近)日期訂購列?因此,在您的示例中,用作排序的選定列將是fee_2_due,但是對於另一行,它可能是fee_3_due? – jprofitt

回答

2

你有沒有嘗試這個辦法:

SELECT * 
FROM table_name 
ORDER BY fee_due,fee_2_due,fee_3_due DESC 
+0

在這種情況下,它會創建順序:2012-11-03 - 2012-11-02 - 2012-11-01? – David

+0

是的,這應該給予預期的結果 – GBD

+0

'fee_2_due'用於打破具有相同'fee_due'的排隊,'fee_3_due'用於在'fee_due'和'fee_2_due'相同時打破平局。那是你要的嗎? – Barmar

13

此外,您可以:

SELECT * 
FROM table_name 
ORDER BY fee_due ASC,fee_2_due DESC,fee_3_due DESC 

你可以每列分別根據您的需要進行排序。

2

我用下面,使其工作:

SELECT * FROM table ORDER BY camp1 ASC, camp2 ASC, camp3 DESC