我知道在关系型数据库中并不存在“最后一行”这种说法,但是我找不到更好的词来解释我想要做什么。我有一张表格长得像下面这样,其中id
是一个AUTO_INCREMENT
字段,而time
则是当前的Unix时间戳。请注意,我可以在不同的行上拥有相同的时间戳。
╔════╦════════════╦════════════╦═════════════╦════════════╗
║ id ║ field_1 ║ field_2 ║ field_n ║ time ║
╠════╬════════════╬════════════╬═════════════╬════════════╣
║ 1 ║ data_field ║ data_field ║ data_field ║ 1369748934 ║
║ 2 ║ data_field ║ data_field ║ data_field ║ 1369748935 ║
║ 3 ║ data_field ║ data_field ║ data_field ║ 1369748936 ║
║ 4 ║ data_field ║ data_field ║ data_field ║ 1369748936 ║
║ 5 ║ data_field ║ data_field ║ data_field ║ 1369748938 ║
║ 6 ║ data_field ║ data_field ║ data_field ║ 1369748939 ║
╚════╩════════════╩════════════╩═════════════╩════════════╝
我想要进行的是一个查询,从最高的
time
字段开始搜索,并且由于我知道它是从低到高排序的,所以当第一行不符合我的WHERE
子句时,我希望它停止搜索,因为所有其他行也不会匹配它。我认为MySQL会搜索所有行,但由于我知道我的数据结构和我想要的数据的位置,所以我不需要搜索整个表。此外,如果我使用ORDER BY
,我相信我的WHERE
子句的所有内容将首先被执行,因此我将基本上搜索整个行集,然后对其进行排序。一个重要的事情是我不知道会检索多少行才能使用LIMIT
子句。以下是一个示例查询:
SELECT fields FROM table WHERE time > timestamp
我想获取从特定日期开始到现在的所有结果。
非常感谢您的帮助。