按此格式的SQL顺序(0:0:0.8)H:M:S.MS - ORDER BY / ASC不工作

时间:2014-02-11 00:10:40

标签: php sql timer

$result = mysql_query("
    SELECT `runner`,`finished` 
    FROM `runs` 
    WHERE `gamename`='$_SESSION[game]' 
    ORDER BY finished ASC
");

结束是时间H:M:S.MS

它根本不排序。

以下是数据:

0:0:5.1 
0:0:5.2 
0:0:5.4 
0:0:5.7  
0:0:7.0  
0:0:8.9 
0:0:9.3 
0:0:9.8 
0:10:25.2    
0:13:15.2    
0:1:27.1     
0:1:50.4 
0:2:27.9 
0:5:30.9

2 个答案:

答案 0 :(得分:0)

您的订购可能会变得棘手,因为"已完成"是一个文本字段。尝试将其转换为您的订单中的日期字段:

...
ORDER BY STR_TO_DATE(finished, '%h:%i:%s.%f')

答案 1 :(得分:0)

这是一种方法,即使它有点复杂:

SELECT * FROM runs
ORDER BY
substring_index(finished, ':', 1),
substring_index(substring_index(finished, ':', 2), ':', -1),
substring_index(substring_index(finished, ':', -1), '.', 1),
substring_index(substring_index(finished, ':', -1), '.', -1)

Test here