MySQL排序日期,然后按部件号

时间:2015-07-15 09:05:18

标签: php mysql sequence

基本上我希望这些部分(下面)按时间顺序分组,然后从最新时间位于列表顶部开始。

ID  Parts       Time
1   SMH_2010    08:59:18    
2   JJK_0101    08:59:26
3   FTD_0002    08:59:24    
4   JJK_0102    08:59:27    
5   FTD_0001    08:59:22    
6   SMH_2010    08:59:20    
7   FTD_0003    08:59:25    

因此,结果如下:

ID    Parts     Time
1   JJK_0101    08:59:26    
2   JJK_0102    08:59:27

3   FTD_0001    08:59:22    
4   FTD_0002    08:59:24    
5   FTD_0003    08:59:25

6   SMH_2010    08:59:20
7   SMH_2010    08:59:18

拜托,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

你所要求的不是传统意义上的排序。您的第一次尝试按时间排序结果,然后按顺序排序,如果多个时间戳同时发生。

您想要的是既不按部件名称按字母顺序对结果进行排序,也不按时间戳上升/下降对结果进行排序。您要求的内容无法通过SQL中的排序操作来完成。按顺序排列部件不是订购。

答案 1 :(得分:0)

我终于找到了解决方法。不是我理想的解决方案,但是,它的工作越少越好。

我添加了另一个名为max_date的字段,默认情况下是'now()',因为每个新部件都会插入。

我从正在插入的当前部分创建一个前缀,类似于“SMH_”作为名为$ prefix =“SMH _”的变量;

我有另一个查询直接在插入之后,它再次更新max_date,'now()',前缀就像$prefix

UPDATE parts SET max_date = now()WHERE前缀LIKE'%$ prefix%'

为了显示结果,我使用了以下内容:

SELECT * FROM parts ORDER BY parts.max_date DESC,parts.part ASC