[英]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.