Сортировка списка смежности детей по алфавиту
Если у меня есть список смежности, отсортированный по id / parent_id, есть ли простой способ отсортировать все дочерние элементы родителя по алфавиту по третьему текстовому полю (скажем, "имя")?
Я использовал информацию, предоставленную здесь: http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/ чтобы MySQL возвратил отсортированный список смежности. В идеале это позволило бы мне отсортировать дочерние элементы по третьему столбцу, но набор тестовых данных вообще не содержит дополнительных столбцов в этом примере.
Мои данные выглядят так после того, как я их запрашиваю, но они должны быть отсортированы по потомкам в алфавитном порядке.
$myArr[] = array(1,0,"instruments");
$myArr[] = array(2,1,"electric");
$myArr[] = array(3,1,"acoustic");
$myArr[] = array(4,2,"guitar");
$myArr[] = array(5,2,"banjo");
$myArr[] = array(6,3,"guitar");
$myArr[] = array(5,3,"banjo");
Или же:
array (
0 =>
array (
0 => 1,
1 => 0,
2 => 'instruments',
),
1 =>
array (
0 => 2,
1 => 1,
2 => 'electric',
),
2 =>
array (
0 => 3,
1 => 1,
2 => 'acoustic',
),
3 =>
array (
0 => 4,
1 => 2,
2 => 'guitar',
),
4 =>
array (
0 => 5,
1 => 2,
2 => 'banjo',
),
5 =>
array (
0 => 6,
1 => 3,
2 => 'guitar',
),
6 =>
array (
0 => 5,
1 => 3,
2 => 'banjo',
),
)
Мне нужно, чтобы это было отсортировано так:
instruments
acoustic
banjo
guitar
electric
banjo
guitar
Спасибо!
1 ответ
Я не знаю, что именно вы хотите сделать, учитывая, что у вас нет примера кода, но не проще ли это сделать так:
SELECT * FROM my_table ORDER BY id, parent_id, title;
это упорядочивает сначала по id, затем по parent_id, когда идентификаторы одинаковы, и для title, если идентификаторы и идентификаторы parent_id одинаковы