如何使用Mysql为单个查询中的两个字段生成Order by语句,其中一个字段需要DESC,另一个字段需要ASC?

如何使用Mysql为单个查询中的两个字段生成Order by语句,其中一个字段需要DESC,另一个字段需要ASC?,sql,mysql,Sql,Mysql,我想做一个查询,通过使用两列按顺序给出结果。 我这样问 select el.*, lb.LabName,lb.LabType, lb.LabDescription from encounterlab el INNER JOIN labs lb ON lb.LabType=el.LabType where PatientAcctNo=4 ORDER BY el.DataOfService,lb.LabName DESC 它给出了结果。

我想做一个查询,通过使用两列按顺序给出结果。 我这样问

select 
    el.*,
    lb.LabName,lb.LabType,
    lb.LabDescription
from encounterlab el
INNER JOIN
    labs lb
    ON 
    lb.LabType=el.LabType
where 
    PatientAcctNo=4 ORDER BY el.DataOfService,lb.LabName DESC

它给出了结果。但我的目标是,如果DataOfService中包含的日期与我想根据LabName进行排序的日期相同,并且这应该是ASC,您可以选择在Order by语句中指定每个字段的顺序

ORDER BY field1 DESC, field2 ASC

您可以选择在ORDERBY语句中指定每个字段的顺序

ORDER BY field1 DESC, field2 ASC

如果我理解正确,您当前的查询顺序与您想要的方向相反(对于两列!)。升序(
ASC
)是隐式的,并且每个列都有一个方向。所以你的例子是:

ORDER BY el.DataOfService,lb.LabName DESC
同:

ORDER BY el.DataOfService ASC, lb.LabName DESC
所以你想要的是:

ORDER BY el.DataOfService DESC, lb.LabName

如果我理解正确,您当前的查询顺序与您想要的方向相反(对于两列!)。升序(
ASC
)是隐式的,并且每个列都有一个方向。所以你的例子是:

ORDER BY el.DataOfService,lb.LabName DESC
同:

ORDER BY el.DataOfService ASC, lb.LabName DESC
所以你想要的是:

ORDER BY el.DataOfService DESC, lb.LabName

谢谢zolex。工作正常。还有一个疑问,我们可以订购n列,对吗?谢谢zolex。工作正常。还有一个疑问,我们可以订购n列,对吗?