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 回答