我有一个时间日志表,其中输入的所有条目都带有时间戳和事件。
现在我想在特定事件和之前的一行(ORDER BY time_stamp)之后选择所有行。
我可以通过多个查询轻松实现此目的,但是只能使用一个查询吗?
使用多个查询
SELECT time
FROM table
WHERE event LIKE '%event_to_fint%'
SELECT event
FROM table
WHERE time<'time from last query'
LIMIT 1
ORDER BY
time DESC
答案 0 :(得分:0)
这个解决方案不太好,但有效:
SELECT *
FROM table
WHERE <condition_A>
ORDER BY <condition_B>
LIMIT (SELECT COUNT(*)
FROM table
WHERE <condition_A>
)+1
答案 1 :(得分:0)
一种选择是
time
记录。time
,其最大time
小于常规选择中的最小time
。SQL声明
SELECT time
FROM table
WHERE event LIKE '%event_to_fint%'
UNION ALL
SELECT MAX(time)
FROM table
WHERE time < (
SELECT MIN(time)
FROM table
WHERE event LIKE '%event_to_fint%'
)