1

テーブルに記録されたイベントを含むテーブルがあります。「開始」、「a」、「b」、「b」、「a」などの多くのイベントが存在する可能性があります。

イベント「a」を持ち、「開始」イベントに続くすべての最初のエントリを検索したいと考えています。

開始後のイベントは通常、私が探しているイベントですが、常にではありません。

だから私が得たのは、論理ではなく自動IDで次のイベントにタグを付けることです。これは90%正しいですが、常にではありません:

SELECT b. *
FROM log AS a
LEFT JOIN log AS b ON a.id = b.id -1
WHERE a.event = 'start'

純粋なmysqlの方法はありますか?

4

1 に答える 1

0

これはあまり最適化されておらず、パフォーマンスも優れていないと思いますが、うまくいくでしょう

SELECT a.*
FROM log AS a
WHERE a.event = 'a' && "start" = (SELECT event FROM log WHERE id<a.id ORDER BY id DESC LIMIT 1)
于 2013-02-08T19:01:24.123 に答える