MySql中带有ASC和DESC的错误结果

MySql中带有ASC和DESC的错误结果,mysql,sql,Mysql,Sql,我有查询搜索最新进展 此查询以升序显示结果 Select VIDLEGENDA FROM T_mst_activity inner join T_dtl_activity on t_mst_activity.vidactivity = t_dtl_activity.vidactivity WHERE vKodeProject = 'C002-1' order BY dtimeactivity asc, vworkhour asc 最后3个是A.01,A.02,B.01 我想选取最后一个结果

我有查询搜索最新进展

此查询以升序显示结果

Select VIDLEGENDA
FROM T_mst_activity inner join T_dtl_activity on t_mst_activity.vidactivity = t_dtl_activity.vidactivity WHERE vKodeProject = 'C002-1' 
order BY dtimeactivity asc, vworkhour asc

最后3个是A.01,A.02,B.01

我想选取最后一个结果,所以我使用降序,如下图所示

Select VIDLEGENDA
FROM T_mst_activity inner join T_dtl_activity on t_mst_activity.vidactivity = t_dtl_activity.vidactivity WHERE vKodeProject = 'C002-1' 
order BY dtimeactivity desc, vworkhour desc

但顶部的3个结果是B.01、A.01、A.02

但是结果应该是B.01,A.02,A.01

如果我的查询有问题

这是我的结构表:

MTU mst\U活动

T_dtl_活动

对于罗纳德: 使用ASC选择vidlegenda、dtimeactivity和vworkhour

使用DESC选择vidlegenda、dtimeactivity和vworkhour
您可以看到,当您描述第2行和第3行具有相同的数据时间活动和相同的工作时间不是吗?由于vidlegenda不符合顺序,因此当条件满足相同的dtimeactivity和相同的vworkhour时,默认顺序为asc。。所以你必须在……之前下3个订单。。首先d时间活动然后v工作时间最后vidlegendadescit

试试这个:

Select VIDLEGENDA
FROM T_mst_activity inner join T_dtl_activity on t_mst_activity.vidactivity = t_dtl_activity.vidactivity WHERE vKodeProject = 'C002-1' 
order BY dtimeactivity desc, vworkhour desc, VIDLEGENDA desc

嗯,不太确定,但为什么不干脆按VIDLEGENDA desc的顺序来做呢?我想应该是这样的,而不是按dtimeactivity desc下订单,而是按vworkhour desc下订单。。这可能是错误的,因为我没有使用order by vidlegenda,因为我必须有实时进度。所以我必须使用dtimeactivity和vworkhour@Ronald我已将表T_mst_Activity和T_dtl_Activity放入。请尝试您的查询,但将
Select VIDLEGENDA
替换为
Select VIDLEGENDA,dtimeactivity,vworkhour
您可以清楚地看到它的顺序是如何的,谢谢您的回答。结果很好,但结果只是对vidlegenda进行排序,而不是对实时vidlegenda进行排序。如果我先输入A.02,再输入A.01秒,则A.02是实时的,但它应该是A.01。因此,我不能使用order by vidlegenda来避免vidlegenda按数字排序。按您输入的日期和时间排序如何?如果你想实时输出,我只需输入日期,MySql显示上次输入的vidlegenda,如果我使用asc,最后的结果是实时的,但是desc是错误的。如果不使用desc和limit 1或limit 3,我怎么能只得到最后一个?