簡體   English   中英

MySQL:選擇值最接近但大於給定值的行

[英]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;

SQL Fiddle演示

您應該在ORDER BY子句中使用ASC,而不是DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM