gpt4 book ai didi

sql - array_append 如果元素不存在

转载 作者:行者123 更新时间:2023-11-29 11:48:31 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
convert MySQL SET data type to Postgres

我有 postgresql 8.4。

我试图建立一个查询但没有成功。如果元素不存在于关注行中,我想将它们插入到数组中。

表“测试”:

+------------------+------------------+
| id | varchar(20) |
| timestp | timestamp |
| place | varchar(20) |
| myarray[][] | varchar[14][254] |
+------------------+------------------+

+---------+---------------------+-----------+----------------+
| xyz | 2010-01-01 10:10:10 | nowhere | "{abc,qwert}" |
+---------+---------------------+-----------+----------------+

所以我想将“{fgh,gfdsa}”添加到 myarray WHERE (id='xyz' AND timestp="2010-01-01 10:10:10"AND place='nowhere') 如果它不在 myarray 中

我试过这样的东西>

UPDATE test
SET myarray = array_append(wascon2,'{fgh,gfdsa}')
WHERE (id='xyz' AND timestp="2010-01-01 10:10:10" AND place='nowhere'
AND NOT EXISTS 1 FROM test WHERE (myarray='{fgh,gfdsa}')));

这不起作用,每次我调用它时它都会追加数组。

+---+---------------------------+-------------------------------------------+
|xyz|2010-01-01 10:10:10|nowhere|{"{abc,qwert}","{fgh,gfdsa}","{fgh,gfdsa}"}|
+---+---------------------------+-------------------------------------------+

如果我认为我应该使用>

myarray = ANY ('{fgh,gfds}'::varchar[]) 

不知何故,但我不知道如何......

对我来说最好的是 plpgsql 函数。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com