クライアント アプリが特別な手順 (メンテナンスなど) を実行しているときに、ハードウェアで発生するイベントを記録するドライバーによって入力されるテーブルがあります。この操作中に保存されるイベントは、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* 行のみを取得する必要があります。変数および不均一な範囲のセットについて、クリーンで簡単な情報を照会する方法はありますか?
ありがとう
編集:私は明確ではないと思います.サーバー上で実行されている2つのアプリケーション、phpベースのWebアプリケーション、および外部ドライバーがあります。両方のスクリプト/アプリケーションが同じデータベースにアクセスし、ドライバーがセンサーやその他のハードウェア ステータスからデータを挿入し、Web アプリがそれを読み取って、かなり優れたグラフィックスを表示します (ユーザー リクエスト、つまりボタンのクリック時に「シグナリング」行を挿入します)。イベントがメンテナンスによるものなのか、通常の操作によるものなのかを比較することはできません。なぜなら、それらはまったく同じであり、技術者が Web ページのボタンをクリックして開始し、別のボタンをクリックして終了したかどうかが異なるからです。私が必要としているのは、Mysql に尋ねることです。
結果セットをループする開始/終了行の間にデータに追加の列を配置するphpでテーブルをリファクタリングする方法を取っていると思います。そして、クエリを作成します。