假设我有一个关联数组(在另一种语言中定义),如下所示:
apply = {
'qwer': ['tju', 'snf', 'rjtj', 'sadgg']
'asdf': ['rtj', 'sfm', 'rtjt', 'adjdj']
...
'zxcv': ['qwr', 'trj', '3w4u', '3tt3']
}
我有一张表格如下:
CREATE TABLE apples (
id integer,
name varchar(10),
key varchar(10),
value varchar(10)
);
我希望应用一个更新,如果
apples.value
在 apply
变量的列表之一中,则将 apples.key
设置为数组的键。 如果 apples.value
是 tju
,则将 apples.key
设置为 qwer
。我的当前方法如下(混合使用 PostgreSQL 和任何过程性语言):
for key in apply.keys:
UPDATE apples SET key=$key
FROM (SELECT unnest(array($apply[key])) AS value) AS update_table
WHERE value=update_table.value
我希望以单条语句完成此操作。