2014-09-19 51 views
1

我有以下的select語句:如何選擇表A和更新表記錄:A

SELECT * FROM pgp 
WHERE group_id IN (
    SELECT group_id FROM pgroups 
    WHERE label LIKE 'Registration%' 
     AND label NOT LIKE '%Snom%' 
) 
    AND pid = 12; 

返回類似的結果:

group_id | pid  | value | updatev 
----------+----------+-------+---------- 
     34 |  12 |  | f 
     11 |  12 |  | t 
     4 |  12 |  | t 
     13 |  12 |  | t 
     17 |  12 |  | f 
     19 |  12 |  | f 

對於所有返回的記錄,我想迫使「updatev」字段的值設置爲true。我不知道該怎麼做。 感謝

回答

1

只要改變SELECTUPDATE

UPDATE pgp 
SET updatev = 't' 
WHERE group_id IN (SELECT group_id FROM pgroups WHERE label like 'Registration%' and label not like '%Snom%') and pid = 12; 

這實際上是一個很好的做法 - 真正改變任何數據之前,讓您的標準正確使用SELECT

0

使用的update聲明:

UPDATE pgp 
SET updatev = true 
WHERE group_id IN (SELECT group_id 
        FROM pgroups 
        WHERE label LIKE 'Registration%' AND 
          label NOT LIKE '%Snom%') AND 
     pid = 12; 
0

可能工作

Update pgp 
set updatev='t' 
WHERE group_id IN (SELECT group_id FROM pgroups WHERE label like 'Registration%' and label not like '%Snom%') and pid = 12; 
相關問題