2012-11-29 63 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