使用PHP访问mySQL
我有10000多条记录,每条记录都有一个开始时间和一个结束时间。
我想要使用这些记录很多,所以我想了解如何优化查询,因为我写PHP函数来探索数据。
第一个,我想要所有记录的平均运行时间,即所有记录的平均值(结束减去开始)。
[编辑]抱歉:问题是:我可以写一个查询,将返回所有记录的所有时间差的平均值?还是在获得TIMEDIFFS返回后(在10,000次迭代的循环中)在PHP中进行平均?
如果我可以在mySQL查询中做到这一点,我如何构建它?显然,它将涉及timemediff()和AVG(),但我不确定我是否可以在一个查询中做到这一点,或者如果我需要更多。
这是畸形的:SELECT timeff (startdatetime,enddatetime) from myTable
假设这是我的表:
myTable:
ID startdatetime enddatetime
1 2014-05-06 12:31:00 1 2014-05-06 12:41:00
2 2014-05-06 12:51:00 1 2014-05-06 12:55:00
我想要回平均值:(41-31)+(55-51)/2 = 7
(我想我必须将经过的时间转换为秒,然后取其平均值,然后将其转换回分钟。)
好的。一旦我弄清楚我要找的是什么,搜寻就容易多了。我已经拼凑出了这个:
SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(timemediff (enddatetime,startdatetime))))) from myTable WHERE (enddatetime IS NOT NULL AND startdatetime IS NOT NULL)