2012-09-14 65 views
3

我當前正在查詢MySQL數據庫以獲取數據並以PHP返回結果。在不使用PHP的情況下更改MySQL查詢的輸出結構

我運行查詢

SELECT title.id, title.title, title.description 
FROM co_titles title 
WHERE title.id = :title 

而且我得到了結果返回如下:

Array ( 
    [0] => Array ( 
     [id] => 1966 
     [title] => Example Title 
     [description] => Example Description 
    ) 
)  

沒有什麼錯的查詢,這是確切的結果,我希望,然而我希望我的結果如下所示:

Array (
    [1966] => Array (
     [title] => Example Title 
     [description] => Example Description 
    ) 
) 

SEE編輯如下,這不再是相關的:有沒有一種方法可以修改我的查詢,以使輸出看起來像這樣?我想不使用PHP,只使用MySQL,除非在MySQL中這是完全不可能的!

我非常感謝你們的幫助,我一直在對這面牆上的牆壁猛撞我的頭。

編輯:好吧,似乎基本上我試圖做的是不可能的。有人可以幫助從一個轉換到另一個最有效的方式?

好吧,我想通了,任何人在我之後,我發現最好的辦法如下:

function parseNotes($notes) 
{ 
    $returnarray = array(); 
    foreach($notes as $i) 
    { 
     $returnarray[$i['id']] = $i; 
     unset($returnarray[$i['id']]['id']); 
    } 
    return $returnarray; 
} 

謝謝大家的幫助!

回答

2

你不能。查詢返回的記錄是線性的。要做到這一點的唯一方法是將其格式化在您的PHP代碼中。 MySQL是一臺服務器,即使您使用GROUP BY,也無法做到這一點。

+0

謝謝你,我結束了使用PHP代碼,我已經添加了我的代碼,以幫助其他人誰可能以後搜索這一點。 – theother404

0

這是沒有辦法實現這個直接出MySQL。實現這一目標的唯一方法是將結果數組映射到另一個使用結果數組中的id作爲新數組的索引。

+0

謝謝你的回答! – theother404

相關問題