我有一个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
。
答案 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