MySQL - 如果所有行都相等则更新列

时间:2017-10-28 04:20:54

标签: php mysql

我有N行具有相同SlNo但不同RowNo的行,如下所示 例如:

SlNo  RowNo  Status
 1     1     Opened
 1     2     Closed
 1     3     Opened
 1     4     Closed
 1     5     Opened  

如果所有状态列行都是Closed,我想返回1

其他o

提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

SELECT STATUS FROM `table_1` where SLNO = 1 group by status

如果您只获得一条有价值的记录"已关闭"然后执行下一个查询

UPDATE `table_2` SET Ref_Status = 'Closed' WHERE SLNO = 1;

答案 1 :(得分:0)

更新my_table设置状态='已关闭',其中SlNo = 1

答案 2 :(得分:0)

查找所有行的计数,并使用Closed值的计数进行检查。

<强>查询

select t.`SlNo`,
case when t.`RowNo_Count` = t.`closed_count` then 1 else 0 end as `new_col` 
from(
    select `SlNo`, 
    count(`RowNo`) as `RowNo_Count`,
    sum(case `Status` when 'Closed' then 1 else 0 end) as `closed_count`
    from `your_table_name`
    group by `SlNo`
)t;