天天看點

PostgreSQL 多重含義數組檢索與條件過濾 (标簽1:屬性, 标簽n:屬性) - 包括UPSERT操作如何修改數組、追加數組元素

PostgreSQL , 多重函數數組 , UDF索引 , 過濾 , 文本處理

PG的數組類型,被廣泛應用于 畫像系統 , 标簽系統。

在一些業務重建中,對數組内容的定義往往包含了多重含義,例如即包含了标簽本身,又包含了标簽的屬性(例如 标簽值:權值,時間 等)。

那麼如何能高效的進行标簽的檢索,同時又過濾出符合标簽權重值的記錄呢?

1、建表

2、寫入測試資料

3、建立UDF1,提取出要查詢的标簽值(用到了正則比對)

4、建立UDF1索引

5、建立UDF2,提取指定标簽的權重值(用到了正則比對,數組下标計算,數組按位置取元素等操作)

6、查詢SQL如下

查詢包含标簽a,同時權值大于20的記錄。

UDF功能是不是很贊呢?

<a href="https://www.postgresql.org/docs/10/static/functions-array.html">https://www.postgresql.org/docs/10/static/functions-array.html</a>

1、追加元素

2、修改元素

3、删除元素

用法舉例

繼續閱讀