如何从我制作varchar的MySql表列中获得最佳时间(我可以更改它,只是我不知道更好)哪些数据看起来像"00:05:22.22"
(它' s&#34 ;小时:分钟:seconds.milliseconds&#34)
它就像那段时间一样......
或者我应该更改我的数据库表结构?什么? 那我该怎么做呢?
即。 在那个列中是这样的记录:
00:00:04.99
00:00:04.57
00:00:04.55
00:00:04.58
00:00:03.36
而且我想在最短的时间内完成所有订购。像最好的一圈。
答案 0 :(得分:3)
如果您使用的是MySQL 5.6.4或更高版本,则可以使用列的TIME数据类型并指示它应接受一秒的小数部分 - 请参阅here。
否则,使用VARCHAR列,您仍然可以对数据使用MIN / MAX函数并期望获得有效结果(假设所有值都已正确格式化),因为按字母顺序对用例中的数据进行排序应该给出与数字排序相同的结果。
或者,您可以在该列上使用ORDER BY子句,只获取前n个结果。取决于您的需求。
答案 1 :(得分:1)
要从表中获取有序集,您的查询需要指定订单 -
SELECT *
FROM `table`
ORDER BY `lap_time` ASC
您不必在查询中包含ASC
,因为任何ORDER BY
将从最小到最大排序,除非另有说明DESC
答案 2 :(得分:0)
正如您所说,您的列数据类型为varchar
,您可以
select [column_names] from [table_name] order by [column_name_containing_time] asc
您可以在此处查看示例:SQL Fiddle