簡體   English   中英

如果存在該值,則為所有用戶更新具有單個值的列的所有值

[英]UPDATE all values of a column with a single value, if that value is present, for all users

我有這樣的表:

ID | cur_val | done  | res 
1  | 10000   | false | false
2  | 20000   | false | false
3  | 30000   | false | false
1  | 40000   | false | false
3  | 60000   | false | false
1  | 10000   | true  | false

我需要一個更新查詢來根據done列中的值更新res列(默認情況下為false )。 具體來說,對於任何ID ,如果donetrue ,則與該ID關聯的所有res值都應更新為true

決賽桌應該是這樣的:

ID | cur_val | done  | res 
1  | 10000   | false | true
2  | 20000   | false | false
3  | 30000   | false | false
1  | 40000   | false | true
3  | 60000   | false | false
1  | 10000   | true  | true

我將不勝感激任何幫助。

sql server

UPDATE t1
SET res = 1
FROM yourtable t1
WHERE EXISTS
    (SELECT 1
     FROM yourtable t2
     WHERE t1.ID = t2.ID
       AND done = 1)

postgres

UPDATE yourtable t1
SET res = true
WHERE EXISTS
    (SELECT 1
     FROM yourtable t2
     WHERE t1.id = t2.id
       AND done = true)
;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM