Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要在mysql媒体服务器日志表中查找当前连接_Mysql - Fatal编程技术网

需要在mysql媒体服务器日志表中查找当前连接

需要在mysql媒体服务器日志表中查找当前连接,mysql,Mysql,我有一个媒体服务器登录到一个mysql数据库,它为每个连接、播放、停止、断开连接事件记录一个单独的行。我想做的是查找没有相关断开事件的连接事件或没有相关停止事件的播放事件 date time category event clientId stream streamId =============================================================================== 2010

我有一个媒体服务器登录到一个mysql数据库,它为每个连接、播放、停止、断开连接事件记录一个单独的行。我想做的是查找没有相关断开事件的连接事件或没有相关停止事件的播放事件

date          time        category    event      clientId    stream    streamId
===============================================================================
2010-04-21    10:30:00    session     connect    1          
2010-04-21    10:30:05    stream      start      1           stream1    1
2010-04-21    10:35:00    stream      stop       1           stream1    1
2010-04-21    10:35:00    session     disconnect 1           
2010-04-21    10:35:00    session     connect    2           
2010-04-21    10:35:05    stream      start      2           stream2    1
2010-04-21    10:35:08    session     connect    3           
2010-04-21    10:35:13    stream      start      3           stream1    1
2010-04-21    10:37:05    stream      stop       2           stream2    1
2010-04-21    10:37:10    stream      start      2           stream1    2
我想能够得到一个当前会话的总数,并在一个单独的查询,当前正在播放的流的总数

谢谢


罗杰。

我最后使用了一个复合select语句

select * from (select *, (select true from statslog as t1 where t1.clientId = statslog.clientId and t1.event = 'disconnect') as `disconnected`
from statslog where statslog.category = 'session' and statslog.event = 'connect') as t2 where isnull(t2.disconnected);

如果数据集中没有唯一的会话id,这可能会很困难。假设值为1的clientId在历史上可能多次出现,也可能同时打开多个会话。嗨,Martin,每个会话的客户端id都是唯一的,因此实际上,它是会话id。在实际数据中,它是一个10位随机数,除非服务器重新启动,否则不应重复。此外,我刚刚添加了streamId列。对于在会话中播放的流,这始终从1开始。会话中的每个后续流都会增加streamId。