选择ID后的记录

时间:2012-02-03 14:35:19

标签: mysql

我有一个MySQL表,其中包含以下两个字段(还有其他字段,但它们无关紧要)

creation_time | object_id  
1325384907    | 75b31b2c-78e9-46b9-afc8-6d90c0df2ee6
1325388538    | c87734c9-5109-4956-a1cb-7e719ebb4549
1325430911    | 79fe7f41-4a73-4aa3-b1e4-68be0253d9ab
[...]

我想做的是从表中选择,按时间排序,在某个object_id之后的所有对象

所以我想要的是像

这样的查询
SELECT * FROM MYTABLE ORDER BY creation_time ASC WHERE object_id > 'c87734c9-5109-4956-a1cb-7e719ebb4549'

哪个应返回1325430911 | 79fe7f41-4a73-4aa3-b1e4-68be0253d9ab(作为该对象ID之后的下一条记录)。

这适用于寻呼系统(I.E.'获得结果'),我们唯一的信息是uuid,因此我们不能只选择creation_time > x

2 个答案:

答案 0 :(得分:2)

SELECT * FROM MYTABLE 
WHERE CREATION_TIME > (SELECT CREATION_TIME FROM MYTABLE WHERE OBJECTID='YOUR_OBJECT_ID_THAT_YOU_REALLY_KNOW' LIMIT 1) 
ORDER BY CREATION_TIME ASC

请注意LIMIT 1,因为如果子查询返回的结果超过1,则查询将失败

答案 1 :(得分:0)

SELECT Creation_Time, Object_ID
FROM `tableName`
WHERE Creation_Time > 
        (SELECT Creation_Time 
         FROM `tableName`
         WHERE Object_ID = 'idhere')
ORDER BY Creation_Time