【问题标题】:Select rows between an specified row to some row with particular condition选择指定行到具有特定条件的某些行之间的行
【发布时间】:2011-04-04 14:06:09
【问题描述】:


假设我们有一个表格(有 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 |  

现在我想从compatible = false的前一行选择version = '0.1.3'的所有行到compatible = false的下一行
结果应该是0.1.20.1.30.1.40.1.5
我该怎么做?

【问题讨论】:

  • 在您的示例中,您需要接收 0.1.3、0.1.4、0.1.5 和 0.1.6 对吗?

标签: mysql


【解决方案1】:
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.1.2、0.1.3、0.1.4、0.1.5
猜你喜欢
  • 1970-01-01
  • 2011-07-04
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多