2

私は私のテーブルに列を持っていますinfoanimal

RABBIT  || Male   || 15
HAMSTER || Female || 10
FROG    || Male   ||  5
RABBIT  || Male   || 40
HAMSTER || Male   ||  4
FROG    || Male   || 13

私は次の瞬間にこれを持っています:

$sql = "SELECT * FROM experimental";
$query5 = mysql_query($sql);
while ($dados = @mysql_fetch_array($query)){
    $infoanimal = $dados["infoanimal"];
    $pesquisa = explode(">>", $infoanimal);
    $num_pesq = count($pesquisa);
    for($i=1;$i<$num_pesq;$i++){
        $dadosx3 = explode("||", $pesquisa[$i]);
        $animal[0] = $dadosx3[0];
        $gender[0] = $dadosx3[1];
        $amount[0] = $dadosx3[5];
    }
}

私は次のことをしたいと思います:

Animal  || Male || Female || Sum
HAMSTER || 4    || 10     || 14
FROG    || 18   || 0      || 18
RABBIT  || 40   || 0      || 40
4

2 に答える 2

0

これらを 1 つの SQL セルに連結するのではなく、別のセルに格納します。

create table animal_info (
    some_row_id int, 
    animal_name varchar, 
    animal_gender enum('Male','Female','Herma'),
    number_animals int);

その後

SELECT 
    animal_name as animal,
    sum(if(animal_gender = 'Male', number_animals, 0)) as male,
    sum(if(animal_gender = 'Female', number_animals, 0)) as female,
    sum(number_animals) as sum
FROM
    animal_info
WHERE
    some_row_id = <row of old entry>
GROUP BY animal_name
;

テーブルが長くなる場合は、すべてのショップまたはそれらに接続されているものすべての動物の名前を保存する代わりに、動物テーブルについて考えて参照してください

于 2013-05-07T20:12:33.560 に答える