Order by две полета със зависимост между тях...

djman

Registered
Имам следната таблица:

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


Трябва да се подреди по следния начин:

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

Т.е. да се подрежда според parent_id и id преди него. Ако не са равни, да идва следващо id с parent_id = 0...

Благодаря!!!
 
Ако не е възможно със заявка, тогава как да ги подредя в масив?
 
dakata__92 каза:
djman каза:
Ако не е възможно със заявка, тогава как да ги подредя в масив?
Не схващам логиката нещо на подредбата :)

Е всеки parent_id = предното id... Погледни по-внимателно) Сравнява се parent_id с id на предния запис. Даже се получава по диагонал леко. (1-1, 3-3 и т.н).
 
Решение на проблема:

[sql]SELECT `id`, `parent_id`
FROM `table`
ORDER BY COALESCE(parent_id, id), id[/sql]

Важно: където няма parent_id, то трябва да е NULL, а не "0"
 

Горе