是否可以在两个cols上使用mysql group_concat来获得一个col的结果?

Jer*_*Roy 2 mysql

我有这样的查询:

SELECT a.sec_id as sid, r.rank
FROM `0_area` AS a
LEFT JOIN `0_rank` AS r ON a.rank_id = r.id
WHERE a.user_id = $id
GROUP BY a.sec_id
Run Code Online (Sandbox Code Playgroud)

它返回有两列的行.如:

sid | rank
2   | user
3   | mod
4   | admin
Run Code Online (Sandbox Code Playgroud)

我想在另一个查询中使用它,同时将两个返回的行放在一列中,可能使用group_concat,如本例所示.以下示例目前无法正常工作

SELECT m.id, m.nom, a.sec_id, a.rank, GROUP_CONCAT( cast( DISTINCT a.sec_id # r.rank 
ORDER BY a.sec_id ASC
SEPARATOR ',' ) AS char ) AS levels
FROM `0_member` AS m
LEFT JOIN `0_area` AS a ON m.id = a.user_id
LEFT JOIN `0_rank` AS r ON r.id = a.rank_id
WHERE a.sec_id =2
ORDER BY m.nom ASC
Run Code Online (Sandbox Code Playgroud)

谢谢.

PS.我得到的错误是:#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'DISTINCT a.sec_id#r.rank ORDER BY a.sec_id ASC SEPARATOR',')附近使用正确的语法作为第1行的lev'

Jer*_*Roy 10

这解决了它.

GROUP_CONCAT( cast( concat( a.sec_id, \': \', a.rank ) AS char ) SEPARATOR \', \') AS ranks
Run Code Online (Sandbox Code Playgroud)