簡體   English   中英

從自引用mysql表中檢索父子層次結構

[英]Retrieve parent-child hierarchy from a self-referencing mysql table

我有一個像這樣的mysql表(刪除了其他列,與問題無關):

id          parent_id
----------- -----------
1           0          
2           0            
3           0          
4           3          
5           2
6           1
7           1          

“父”是parent_id = 0的行。

我想知道是否有辦法制定查詢,以便MySQL在父母之后輸出每個孩子的行?

預期的結果是

id          parent_id
----------- -----------
1           0          
6           1            
7           1          
2           0          
5           2          
3           0          
4           3          

感謝您的時間。

MySQL不支持遞歸查詢,因此如果孩子可以有孩子,則無法制定這樣的查詢。 否則,此查詢應按您需要的順序返回行:

SELECT * FROM tablename
ORDER BY
  CASE WHEN parent_id=0 THEN id ELSE parent_id END,
  id

請看這里的小提琴。 訣竅是如果它是父項, parent_id id排序行;如果是子項, parent_id排序,然后按id排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM