例如,如果我在 mysql 表中有 id 和时间戳。它包含几条记录。如何在php中查找并存储每一行插入时间差,即比较第2行与第1行的插入时间并存储结果,将第3行与第2行比较并存储结果......。
我有消息名称的表格,字段是
id int(11),
timestamp int(11),
body_xml text,
chatname text
此表包含聊天信息,我需要找到总聊天时间和编号。使用 id 的特定用户可用的对话。所以我想找到每一行的时间差,如果时间差超过 10 分钟,它认为是新的对话。
我的任务是找到关于特定用户的总聊天时间,而不是。Skype 中该用户可用的对话。
现在我将所有聊天信息存储到 mysql 表中。
-------------------------------------------------- ----------------------------------------- id 时间戳消息名称 -------------------------------------------------- ----------------------------------------- 1 2012-10-11 11:18:34 喜公羊 2 2012-10-11 11:19:14 hw ru ram 3 2012-10-11 11:20:55 细公羊 4 2012-10-11 11:55:03 有 ram 5 2012-10-11 11:56:21 是的 内存 6 2012-10-11 11:57:33 然后 ram
上表中 id 1 到 3 的时差小于 10 分钟,而 id 4 与 id 3 的时差超过 10 分钟,所以这里会认为是新会话,将 id 1 到 3 的总时间存储到 varable 中将 4 到 6 的总时间更新为同一个变量,这里的总对话是 2。
我需要输出为总会话数 2 总时间为 xx:xx
我试过这段代码
SELECT A.id, A.timestamp, (B.timestamp - A.timestamp) 作为时差 FROM time_diff A CROSS JOIN time_diff B WHERE B.id IN (SELECT MIN (C.id) FROM time_diff C WHERE C.id > A.timestamp) 由 A.id ASC 订购
我得到空结果