2012-08-14 68 views
0

如果我有一个邻接表由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 

谢谢!

+0

你会做你的问题一些好通过提供阵列的小有效的PHP代码示例。提示 - 使用[var_export](http://www.php.net/var_export)()来制作它。 – goat 2012-08-14 14:47:42

+0

谢谢你指出。我会尽我所能确保清楚。 – Jake 2012-08-14 15:28:46

回答

1

我不知道你想做的事因为你没有代码示例什么,不过,是不是更容易做这样的:

SELECT * FROM my_table ORDER BY id, parent_id, title; 

的订单首先由ID,然后通过PARENT_ID当ID相同和标题,如果IDS和parent_ids是相同的