2011-04-04 75 views
2


讓我們覺得我們有一個表(含2場那些versioncompatible)數據如下:的指定行之間選擇行中某行與特定條件

+-------+------+ 
| 0.1.1 | true | 
+-------+------+ 
| 0.1.2 | false| 
+-------+------+ 
| 0.1.3 | true | 
+-------+------+ 
| 0.1.4 | true | 
+-------+------+ 
| 0.1.5 | true | 
+-------+------+ 
| 0.1.6 | false| 
+-------+------+ 
| 0.1.7 | true | 

現在我想選擇0.1.20.1.30.1.40.1.5
我怎樣才能做到這一點的所有行version = '0.1.3'從之前一行compatible = false到下一行compatible = false
結果應該是?

+0

在你的例子中你需要重新調整0.1.3,0.1.4,0.1.5和0.1.6對嗎? – 2011-04-04 14:12:38

+0

是的,但不是0.1.6 – Omid 2011-04-04 14:15:32

回答

2
SELECT version, compatible 
    FROM YourTable 
    WHERE version >= '0.1.3' 
     AND version < (SELECT version 
          FROM YourTable 
          WHERE version > '0.1.3' 
           AND compatible = 'false' 
          ORDER BY version 
          LIMIT 1) 
    ORDER BY version 
+0

好,所以如果我想選擇兼容性錯誤的上一行和下一行之間的版本。我的意思是0.1.2,0.1.3,0.1.4,0.1.5 – Omid 2011-04-04 14:18:07