Sql 如何从表A中选择记录并更新表A
我有以下select语句:Sql 如何从表A中选择记录并更新表A,sql,postgresql-9.2,Sql,Postgresql 9.2,我有以下select语句: 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 ----------+--------
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。我不知道该怎么做。
谢谢只需将
选择
更改为更新
:
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;
这实际上是一个很好的做法-在实际更改任何数据之前,先通过选择
正确确定标准。使用以下语句:
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;
可能有用
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;