您好,登錄后才能下訂單哦!
數組類型,要求數組內的元素屬于同一種類型,當出現No function matches the given name and argument types. You might need to add explicit type casts.報錯的時候,說明 list 的格式和插入數據或者修改數據的格式不同導致的, 類型很重要,需要保證類型相同才可以操作
只需要在表字段類型后面加'[]'
postgres=# create table test1 (
id serial,
arr int[],
name varchar(10)[],
age char(10)[],
score float[]
);
postgres=# \d+ test1;
Table "public.test1"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-------------------------+----------------------------------------------------+----------+--------------+-------------
id | integer | not null default nextval('test1_id_seq'::regclass) | plain | |
arr | integer[] | | extended | |
name | character varying(10)[] | | extended | |
age | character(10)[] | | extended | |
score | double precision[] | | extended | |
postgres=# insert into test(id, uid) values(3, '{1, 2, 3}'); 插入數組方式1
postgres=# insert into test(id, uid) values(3, array[20, 30]::int8[]); 插入數組方式二
postgres=# update test set uid = uid || '{0}'; 后面追加一個數組
postgres=# update test set uid='{0,0}' || uid; 在前面插入一個數組
postgres=# update arr_test set uid=array_append(uid, '1'::int); 指明類型追加一個數
postgres=# update arr_test set uid=array_append(uid, 1); 按默認int類型追加一個數
postgres=# update arr_test set uid=array_prepend('1'::int, uid); 在前面插入一個數
postgres=# update arr_test set uid=array_remove(uid, '1'::int); 指明類型移除指定的數
postgres=# select * from test where 20=any(uid); #uid數組中存在20的row
postgres=# select * from test where uid && array[20, 1]::int8[]; uid數組中和array[20, 1]存在交集的
postgres=# select * from arr_test where uid@>'{1, 2}'; uid 數組中同時包含[1, 2]的
postgres=# select * from arr_test where uid<@'{1, 2}'; uid 數組被[1, 2]包含的
postgres=# select * from arr_test where 2=uid[1]; 使用uid 數組下標查詢,下標是從1開始的
postgres=# select id, uid[2] from arr_test; 使用下標顯示
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。