Postgresql - 来自jsonb数组的不同值

时间:2017-01-11 03:35:55

标签: postgresql jsonb

我有以下jsonb数组列(标签)

|name | tags (jsonb)   |
--------------------------------
|john | [ "foo", "bar" ]
|smith| [ "bar", "bat" ]
|adam | [ "foo", "dot" ]

如何获取不同的标签如下 [“foo”,“bar”,“bat”,“dot”]?

1 个答案:

答案 0 :(得分:1)

这将解决您的特定问题。

SELECT DISTINCT tag FROM
  (SELECT name, JSONB_ARRAY_ELEMENTS(tags) as b FROM my_table) AS foo;
然而,你有一个更大的问题。像这样存储标签是一个经常重复的错误。你应该规范你的表。请参阅Django JSONField inside ArrayField