2012-10-01 85 views
0

我有一个查询从多个行/表中获取信息,结果是一个产品列表。MySQL 2D排序

列表具有3(三)基团被分离,并且每个基团必须由最后修改日期时间自身排序。

我得到群体的排序,但我不能让各小组内部订购。

ORDER BY param1 DESC, IF(param2, 1, 0) DESC,param3 DESC, default_param 

我想让它(如果可能):

ORDER BY param1 (modification_date DESC) DESC, IF(param2, 1, 0) (modification_date DESC) DESC,param3 (modification_date DESC) DESC, default_param 
+2

能否请您添加查询的休息吗? –

+0

它不是一个问题,但它是一个非常长的查询并使用多个表/行,并填充此示例将需要很长时间。 – Anonymous

回答

1

试试这个:

ORDER BY 
    CASE WHEN param1 = 'Some value 1' THEN 1 END, g1.modification_date DESC, 
    CASE WHEN param2 = 'Some value 2' THEN 1 END, g2.modification_date DESC, 
    CASE WHEN Param3 = 'Some value 3' THEN 1 END, g3.modification_date DESC 
+0

事情是我不知道任何参数值,参数实际上是一个有点强的词,这些行更像是指示这个产品应该去哪里的标记。 – Anonymous

+0

@Anonymous如果您发布该查询,甚至简化版本,只是为了看看它是如何工作的,那么我可以理解你正在尝试做什么,因此可以帮助你。你可以吗?? –