我有一个由记录发生在硬件上的事件的驱动程序填充的表,当客户端应用程序正在执行特殊过程(例如维护)时,在此操作期间保存的事件是由于用户而不是由 I/O(传感器和东西),来处理这个问题,因为我需要保存所有可能的事件(无论是通过正常操作还是通过用户操作发生)。我需要能够过滤那些“维护模式”数据并获取自动生成的信息,为此我在由硬件填充的表中插入“START”和“END”行,儿子我可以知道什么时候非功能性数据的开始和结束位置,如下所示:
id | fieldlist...
---+--------------------
1 | event1
2 | event2
3 | event3
4 | manteinance start (inserted by me)
5 | event_by_technician1
6 | event_by_technician2
7 | event_by_technician3
8 | manteinance finish (inserted by me)
9 | event4
10| event5
11| manteinance start (inserted by me)
12| event_by_technicianx
13| event_by_techniciany
14| manteinance finish (inserted by me)
15| eventA
16| manteinance start (inserted by me)
17| event_by_technician
18| manteinance finish (inserted by me)
19| many many more records and start/finish pairs...
我需要过滤所有这些 event_by_technician* 并只获取 event* 行,有没有一种方法可以简单地查询信息,以获取变量和非统一的范围集?
谢谢
编辑:我想我不清楚,服务器上运行了两个应用程序,我的基于 php 的 Web 应用程序和一个外部驱动程序。两个脚本/应用程序访问同一个数据库,驱动程序插入来自传感器和其他硬件状态的数据,Web 应用程序读取数据并显示一些非常漂亮的图形(它在用户请求中插入“信号”行,即单击按钮)。只是无法通过比较来确定事件是来自维护还是来自正常操作,因为它们是相同的,区别在于技术人员是否单击网页上的一个按钮开始,以及完成时单击另一个按钮。我需要的是问Mysql:“嘿,只要给我那些不在field1 = 1(开始)的行和另一个field1 = 2(结束)的行之间的行。考虑到'
我想我正在采用 php 重构表格的方式,在围绕结果集循环的开始/结束行之间的数据中添加一个额外的列。然后提出我的查询。