繁体   English   中英

mysql-如何从选定的行中选择倾斜行

[英]mysql - how to select skew row from selected

我有一张桌子:

ID  - TIME - STATUS

几个STATUS行的值为'0'。 我想从“状态”列中值为“ 0”的行中选择所有ID - 2的行,该怎么办?

例:

ID - TIME - STATUS
1 - 00 - null
2 - 03 - null
3 - 02 - 0
4 - 05 - null

从此示例中,我应该选择ID为“ 1”的行,因为ID为3的行中的值是“ 0”

我将使用foreach循环执行此操作,然后根据需要修改密钥:

$data = array(); // Pre loaded data from table.
$ids = array(); // Array of IDs - 2 with status 0.

foreach($data as $key => $row) {
    if($row['STATUS'] == 0 && isset($data[$key - 2])) {
        $ids[] = $data[$key - 2]['ID'];
    }
}

您可以在ID相差2的ID上使用自我加入

select * from t
join t t1 on(t.id = t1.id - 2)
where t1.`STATUS` = '0'

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM