mysql8.0如何利用遞歸把某個字段的父級和子級以分隔符拼接在一起


有科室表host_dept字段如下:

dept_id(部門id)   dept_name(部門名稱)  parent_id(父級的部門id)   level(部分級別 例:當前部門級別為2,則父級為1)

需求如下:一個醫院有多個心理科分別屬於不同部門(門診部門、住院部門等)需要將每個心理科的父級也展示出來用於區分

WITH RECURSIVE tree_cte as
(
select d.*,d.dept_id as deptId from hos_dept d where d.dept_name='心理科'
UNION ALL
select t.*,tcte.deptId
from hos_dept t inner join tree_cte tcte on t.dept_id = tcte.parent_id
)
SELECT deptId,GROUP_CONCAT(dept_name order by level asc separator '/') as deptNam from tree_cte group by deptId

結果:

 如果門診部門、行政部門...也有父級 也會拼接到前面(醫院/門診部門/心理科)

關於mysql8.0遞歸用法可以參考  https://www.cnblogs.com/blwy-zmh/p/13895299.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM