MySQL拆分并加入值

Sat*_*nnu 5 mysql

我有一个表[mapping]与2列类似于下面

id  | values
1   | 1,2
2   | 1,2,3
3   | 1,1
4   | 1,1,2
Run Code Online (Sandbox Code Playgroud)

和另一个表[map]类似于此

sno | values
1   | Test
2   | Hello
3   | Hai
Run Code Online (Sandbox Code Playgroud)

我的预期产量是

id  | values
1   | Test,Hello
2   | Test,Hello,Hai
3   | Test,Test
4   | Test,Test,Hello
Run Code Online (Sandbox Code Playgroud)

可能吗?如果是,请任何人可以为我建立一个查询.

sag*_*agi 8

您可以使用MySQL FIND_IN_SET()来连接表并GROUP_CONCAT()连接值:

SELECT s.sno,GROUP_CONCAT(s.values) as `values` 
FROM mapping t
INNER JOIN map s ON(FIND_IN_SET(s.id,t.values))
GROUP BY s.sno
Run Code Online (Sandbox Code Playgroud)

注意:您应该知道这是一个非常糟糕的数据库结构.这可能会导致更复杂的查询,并会迫使您过度复杂化.您应该规范化数据,拆分数据,并将每个数据ID放在单独的记录中!