2012-09-14 33 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

相关问题