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
    )
)   

以下の編集を参照してください。これはもはや関係ありません。出力を次のようにするためにクエリを変更する方法はありますか? MySQL でこれが完全に不可能でない限り、PHP を使用せずに 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 に答える