[英]MySQL: Select rows with values nearest but greater than a given value
好吧,我在這里苦苦掙扎。 我有一個未排序值的MySQL表,其結構如下:
ID Size
----- -----
1 12
2 10
3 1
4 0
5 8
6 9
7 6
8 2
9 9
10 4
給我想要的大小(例如size = 5),提取下一個較大的行(最終提取下一個較小的行)。
我試過了:
SELECT * FROM Table WHERE Size > 5 ORDER BY Size DESC LIMIT 2
但這給了我:
ID Size
----- -----
1 12
2 10
但是我想要的是
ID Size
----- -----
7 6
5 8
任何幫助,將不勝感激。 如果有區別,我正在使用PHP訪問表。 謝謝!
您正在使用DESC來獲取下降的結果。 您應該使用ASC來獲取升序的結果。
例-
SELECT * FROM Table WHERE Size > 5 ORDER BY Size ASC LIMIT 2
已編輯
您需要先按降序獲取,然后再按升序重新獲取。
例-
SELECT * FROM
(SELECT * FROM Table WHERE Size > 5 ORDER BY Size DESC ) AS r
ORDER BY r.Size ASC LIMIT 2
您可以選擇大小大於5的行作為子查詢,然后從子查詢的結果集中選擇前兩行。
詢問
select t.* from(
select * from your_table_name
where size > 5
)t
order by t.size asc limit 2;
您應該在ORDER BY子句中使用ASC,而不是DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.