我有一个GROUP_CONCAT
我需要ORDER BY
2列。问题是,对于我将在任何其他ORDER BY
中使用的正常sintax,它将忽略仅由第二列排序的第一列。
示例:
GROUP_CONCAT(
DC.reference_date,' - ',D.number,'/',D.year,' : ',
IF(DC.notes IS NOT NULL,DC.notes,'')
ORDER BY D.number, DC.reference_date SEPARATOR '\r\n'
)
有了这个,我将得到一个按日期排序的清单(而不是数字和按日期排序):
2015-05-25 - 3714/2014 : id 17
2015-05-25 - 2729/2014 : id 19
2015-05-27 - 3714/2014 : id 21
2015-05-27 - 2729/2014 : id 20
2015-05-28 - 3714/2014 : id 18
并且用这个:
GROUP_CONCAT(
DC.reference_date,' - ',D.number,'/',D.year,' : ',
IF(DC.notes IS NOT NULL,DC.notes,'')
ORDER BY D.number SEPARATOR '\r\n'
)
我只能按号码正确获得一份清单:
2015-05-27 - 3714/2014 : id 21
2015-05-28 - 3714/2014 : id 18
2015-05-25 - 3714/2014 : id 17
2015-05-27 - 2729/2014 : id 20
2015-05-25 - 2729/2014 : id 19
我需要的是这样的列表顺序:
2015-05-25 - 3714/2014 : id 17
2015-05-27 - 3714/2014 : id 21
2015-05-28 - 3714/2014 : id 18
2015-05-25 - 2729/2014 : id 19
2015-05-27 - 2729/2014 : id 20
ORDER BY
失败原因的任何线索?
根据草莓请求更新,这是整个查询的缩短版本:
SELECT GROUP_CONCAT(DC.reference_date,' - ',D.number,'/',D.year,' : ', IF(DC.notes IS NOT NULL,DC.notes,'') ORDER BY D.number SEPARATOR '\r\n') AS 'd_c', CD.contract_id
FROM gbdc AS DC
LEFT JOIN [...]
WHERE CD.cancel <> 1
AND BP.bill_id IS NULL
GROUP BY CD.contract_id