切记:以后把常用的这种拼接列的名称都维护进表里,不要图一时之快就维护一个ID;
SELECT
(
SELECT
GROUP_CONCAT( department_name SEPARATOR '-' )
FROM
platform_department p
WHERE
p.del_flag = 'N'
AND p.path LIKE CONCAT( "%", pd.department_id, "%" )
) AS aaa,
department_id AS id,
path,
`level`,
department_id,
enterprise_id,
department_name,
del_flag,
create_time
FROM
platform_department pd
WHERE
del_flag = 'N'
AND enterprise_id = '1412603260791558145'
上边是错误示范想简单了,path跟拼接出来的aaa列明显对不上,下半部分是正确操作,请指教!!!
SELECT
(
SELECT
GROUP_CONCAT( department_name ORDER BY p.`level` ASC SEPARATOR '-' )
FROM
platform_department p
WHERE
p.del_flag = 'N'
AND FIND_IN_SET( p.department_id, REPLACE ( pde.path, "/", "," ) )
) AS department_names,
path,
`level`,
department_id,
department_name,
enterprise_id,
del_flag,
create_time
FROM
platform_department pde
WHERE
del_flag = 'N'
AND enterprise_id = '1412603260791558145'