0

私はこのLeague_tableを持っています:

+--------+----------+-------------+
|   id   |   star   |   section   |
+--------+----------+-------------+
|   1    |    1     |      A      |
|   2    |    0     |      A      |
|   3    |    1     |      B      |
|   4    |    1     |      B      |
|   5    |    0     |      C      |
|   6    |    1     |      C      |
|   7    |    0     |      D      |
|   8    |    1     |      D      |
+--------+----------+-------------+

可能かどうか迷っているのですが、まとめて返却してもらうことはできますか?

この単純なクエリSELECT id, star FROM league_table WHERE star = 1"を実行してから使用するとしますPDO FETCH ALL

私はこの出力を持つことができます:

Array
(
    [0] => Array
        (
            [id] => 1
            [star] => 1
        )

    [1] => Array
        (
            [id] => 3
            [star] => 1
        )

    [2] => Array
        (
            [id] => 4
            [star] => 1
        )

    [3] => Array
        (
            [id] => 6
            [star] => 1
        )
    [4] => Array
        (
            [id] => 8
            [star] => 1
        )
)

ただし、この出力をより整理できるようにすることはできますか?

Array
(
    [A] => Array
        (
            [0] => Array 
                (
                  [id] => 1
                  [star] => 1
                )
        )

    [B] => Array
        (
            [0] => Array
                (
                   [id] => 3
                   [star] => 1
                )
            [1] => Array
                (
                   [id] => 4
                   [star] => 1
        )

    [C] => Array
        (
            [0] => Array 
                (
                  [id] => 6
                  [star] => 1
                )
        )

    [D] => Array
        (
            [0] => Array 
                (
                  [id] => 8
                  [star] => 1
                )
        )
)
4

3 に答える 3

0

コード内でそのように整理する必要があります。 SELECT id, star, section FROM league_table WHERE star = 1 order by section asc少し簡単になります。

phpを使用している場合は、次のようになります。

foreach ($result as $key=>$row){
    $output[$row['section']][]=$row;
}
于 2012-12-07T06:09:34.787 に答える
0

use は次の SQL を使用できます。

select group_concat(id), star, section from league_table where star = 1' group by section

//you will get the following result

+--------+----------+-------------+
|   id   |   star   |   section   |
+--------+----------+-------------+
|   1    |    1     |      A      |
|   3,4  |    1     |      B      |
|   6    |    1     |      C      |
|   8    |    1     |      D      |
+--------+----------+-------------+

各行を反復処理するたびに、explode(',', id) を実行できるようになりました。すべての値が 1 に等しいため、星はそれほど重要ではありません

于 2012-12-07T06:26:17.177 に答える