Выберите строки между указанной строкой и строкой с определенным условием - PullRequest
2 голосов
/ 04 апреля 2011

Привет
давайте подумаем, что у нас есть таблица (с 2 полями version, compatible) со следующими данными:

+-------+------+  
| 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 |  

Теперь я хочу выбрать все строки, где version = '0.1.3' от предыдущей строки compatible = false до следующей строки compatible = false
результат должен быть 0.1.2, 0.1.3, 0.1.4, 0.1.5
как я могу это сделать?

1 Ответ

2 голосов
/ 04 апреля 2011
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...