如何选择SQL查询结果的特定部分?

时间:2014-12-27 18:23:23

标签: mysql sql select

我有一个包含一百万行的MySQL表。我的查询结果需要包含100行,并且必须按日期排序。

我现在想在查询中添加一个子句,使得可以告诉数据库“以id为'5'的行之后的行开始结果”。因此,我的结果将包括具有ID 4,3,2,6,8 ......

的行

亲爱的读者,您是否能够让我摆脱困境? ;)

查询:

SELECT id, type, content, date
FROM my_table
WHERE type = 'FI'
ORDER BY date ASC
LIMIT 100;

结果:

| id | type | content  | date       |
|----|------|----------|------------|
| 7  | FI   | ContentR | 2014-01-01 |
| 9  | FI   | ContentS | 2014-01-13 |
| 1  | FI   | ContentT | 2014-02-09 |
| 5  | FI   | ContentU | 2014-03-27 |
| 4  | FI   | ContentV | 2014-03-30 | ---|
| 3  | FI   | ContentW | 2014-04-01 |    |
| 2  | FI   | ContentX | 2014-06-10 |    |- The result I want
| 6  | FI   | ContentY | 2014-09-03 |    |
| 8  | FI   | ContentZ | 2014-12-09 |    |
 ...                                  ---|

1 个答案:

答案 0 :(得分:3)

SELECT id, type, content, date
FROM my_table
WHERE type = 'FI'
AND date > (SELECT date FROM my_table WHERE id = 5)
ORDER BY date ASC
LIMIT 100;