这可能是一个非常基本的问题,但我根本不了解SQL。
为了简化问题,让一个只有一列的表,所以我可以横向写下行:
1 3 11 39 41 45 52 63 66 70 72 80 81 90 92 97
如您所见,它们已经分类。现在,我知道有一行“70”,我想在它之前按升序查询5行。也就是说,我想要
41 45 52 63 66
我该如何进行查询?
我可以按降序查询5行,然后反转结果集,但我认为应该有更好的方法。
答案 0 :(得分:18)
以@likeToCode为例,只需修改如下,重新排序结果: -
SELECT * FROM (
SELECT *
FROM SAMPLE
WHERE index1 < 70
ORDER BY index1 DESC
LIMIT 0,5
)
ORDER BY index1 ASC;
答案 1 :(得分:2)
以下是我能够提出的查询,但不确定这是否是您需要的,而且结果是降序。
我创建了一个表SAMPLE,其中index1作为唯一的列
SELECT * FROM SAMPLE WHERE index1 < 70 ORDER BY index1 DESC LIMIT 0,5;