【发布时间】:2017-07-05 19:43:24
【问题描述】:
我是 sql 新手,我尝试将字符串附加到文本数组列中,前提是该数组尚未包含该字符串:
UPDATE users
SET sharedfolders = array_append(sharedfolders, '/test2/test3/aaaa')
WHERE companyid = 2
AND scope = 2
AND id = 3
AND NOT ('/test2/test3/aaaa' = ANY (sharedfolders))
这是我的桌子:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
companyid INT REFERENCES companies (id) ON UPDATE CASCADE ON DELETE CASCADE,
email VARCHAR UNIQUE,
lastname VARCHAR(50),
firstname VARCHAR(50),
password VARCHAR,
scope SMALLINT,
sharedfolders TEXT[]
);
即使我有一个范围 = 2、id = 3、公司 = 2 和一个空数组的用户,此查询也不起作用。
它不起作用是因为数组没有定义还是我遗漏了什么?
PS:如果我删除AND NOT ('/test2/test3/aaaa' = ANY (sharedfolders)),它显然可以工作。
【问题讨论】:
标签: sql arrays database postgresql