我目前正在查询MySQL数据库中的数据并以PHP格式返回结果。
我正在运行查询
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
)
)
请看下面的编辑,这已经不再相关了:有没有办法可以修改我的查询以使输出看起来像这样?我想这样做而不使用PHP,只使用MySQL,除非在MySQL中完全不可能!
我非常感谢你们的帮助,我一直在这个墙上撞墙。
编辑:好吧,基本上我试图做的事情似乎是不可能的。有人可以帮助最有效的方式从一个转换到另一个吗?
好吧我明白了,对于跟在我后面的人来说,我找到的最好方法如下:
function parseNotes($notes)
{
$returnarray = array();
foreach($notes as $i)
{
$returnarray[$i['id']] = $i;
unset($returnarray[$i['id']]['id']);
}
return $returnarray;
}
谢谢大家的帮助!
答案 0 :(得分:2)
你做不到。查询返回的记录是线性的。唯一的方法是在PHP代码中形成它。即使您使用MySQL
,GROUP BY
也是无法执行此操作的服务器。
答案 1 :(得分:0)
无法直接实现MySQL。实现此目的的唯一方法是使用结果数组中的id将结果数组映射到另一个数组,作为新数组的索引。