我使用mysql,并有一个表的名称是table标签列值像这样
code tag_customer
TG001 1,2,3
TG002 2,3,4,5
还有master_tag表标签名像这样
id value
1 New
2 Active
3 Gold
4 Silver
5 Bronze
我想选择数据,但这个标签的值名称:
code tag_value
TG001 New,Active,gold
TG002 Active,Gold,Silver,Bronze
我尝试子字符串索引,但它的显示结果在不同的列,也仍然需要手动声明多少lop子字符串索引需要声明同时标签的值是动态的,而不是静态的
您可以连接表,按code
分组,并使用GROUP_CONCAT()
收集标记值:
SELECT t.code,
GROUP_CONCAT(m.value ORDER BY m.id) tag_value
FROM tag t INNER JOIN master_tag m
ON FIND_IN_SET(m.id, t.tag_customer)
GROUP BY t.code;