Нужно сделать сортировку такого вида:
| id | parent |
| 2043 | NULL |
| 2044 | 2043 |
| 2045 | 2043 |
| 2049 | 2043 |
| 2047 | NULL |
| 2048 | 2047 |
| 2043 | 2047 |
Делается это таким выражением:
ORDER BY COALESCE(parent, id), parent IS NOT NULL, id
Правильно ли я понимаю механизм?
* COALESCE находит первое не Null значение
1. Сортируется parent
2. parent ряд вставляется в вверх
parent IS NOT NULL -
Что дает is not null в order?
3. Сортирутеся id