3

我目前正在查询 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;
}

感谢大家的帮助!

4

2 回答 2

2

你不能。查询返回的记录是线性的。做到这一点的唯一方法是在您的 PHP 代码中对其进行格式化。MySQL 即使您使用GROUP BY.

于 2012-09-14T03:23:21.567 回答
0

没有办法直接从 MySQL 中实现这一点。实现此目的的唯一方法是将结果数组映射到另一个数组,使用结果数组中的 id 作为新数组的索引。

于 2012-09-14T03:26:26.720 回答