【发布时间】:2016-09-15 10:12:29
【问题描述】:
我有一个 MySQL 数据表,其中包含一个包含值列表的 JSON 列:
约束表
ID | CONSTRAINT_TYPE | CONSTRAINT_VALUES
----+-----------------+--------------------------------
'2'| 'testtype' |'[801, 751, 603, 753, 803]'
...| ... | ...
我想要的是一个独特的、以逗号分隔的 JSON 值列表。我用 group_concat 试过,但它适用于数组,而不是单个值。
SELECT group_concat(distinct constraint_values->>'$')
FROM constraint_table c
WHERE c.constraint_type = "testtype";
实际结果:
[801, 751, 603, 753, 803],[801, 751],[578, 66, 15],...
我的目标结果:
801, 751, 603, 753, 803, 578, 66, 15 ...
没有重复。因为行也会很好。
有什么想法吗?
【问题讨论】:
-
故事的寓意:将逗号分隔的数据存储在列中总是一个坏主意
-
为此,您必须首先规范化您的数据。你有一个包含规范化约束值的表吗?
标签: mysql arrays json distinct concat