mysql语法帮助(用于postgres查询)



你能建议mysql 8的正确语法吗?它相当于postgres下面的查询:

IF EXISTS (select 1 FROM aggregator.argument where argumentname = 'DEFAULT_FE_PAGE' AND value = 'NEW')
THEN
update aggregator.argument set value='AA' where name = 'DEFAULT_FE_PAGE';
END IF;

感谢

考虑到spencer7593指出的细微差别,只有当至少存在一行具有name=DEFAULT_FE_PAGEvalue=NEW时,我们才希望更新所有具有name=DEFAULT_FE_PAGE的行。

我们可以使用多表更新:

UPDATE aggregator.argument AS a1
JOIN aggregator.argument AS a2 USING (name)
SET a1.value='AA' 
WHERE a2.name = 'DEFAULT_FE_PAGE' AND a2.value='NEW';

这将使一行a2同时满足这两个条件,然后将该行连接到具有相同name的所有行a1,即使它们具有不同的value

最新更新