2012-08-14 161 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是相同的