2017-10-28 4 views
0

Ich habe N Reihen mit gleichen SlNo aber unterschiedliche RowNo wie unten für zB gezeigt:MySQL - Update Spalte wenn alle Zeilen gleich

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

Wenn alle Statusspalte Zeilen Closed sind, möchte ich 1 zurückkehren .

sonst o.

Vielen Dank im Voraus.

Antwort

2

Sie können es folgende:

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

Wenn Sie nur einen Datensatz erhalten mit dem Wert "Geschlossen", dann führen Sie die nächste Abfrage

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

dies sicher funktioniert ... – GYaN

0

aktualisieren my_table Set Status = 'geschlossen' where SlNo = 1

+0

Lesen Sie die Frage sorgfältig – GYaN

0

Suchen Sie die Anzahl aller Zeilen und überprüfen Sie sie mit der Anzahl der Closed Werte.

Abfrage

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; 
Verwandte Themen