1

私の SQL データベースには 3 つの列があります。KeyTopic、およびValue。異なる値を持つ重複するトピックがあります。以下にサンプルを示します。

 Key    Topic  Value
 -----  -----  -----
 1      Book      20
 2      Toy       10
 3      Toy       30
 4      Pet      100
 5      Book      15
 .      .          .
 .      .          .

Perlを使用して、各一意のキーをその要素に対応する値を持つ配列として使用する列Topic( )からハッシュを作成するにはどうすればよいですか: , , .%TopicTopic@Book = 20, 15, ...@Toy = 10, 30, ...@Pet = 100, ...

4

2 に答える 2

3

トピックによってキー付けされたハッシュが必要だと思います。値は、そのトピックの値を持つ配列への参照です。

my %values_by_topic;
my $sth = $dbh->prepare('SELECT Topic, Value FROM Table');
$sth->execute();
while (my $row = $sth->fetch()) {
   my ($topic, $value) = @$row;
    push @{ $values_by_topic{$topic} }, $value;
}
于 2012-09-18T19:10:25.447 に答える
0

mysql 側:

select Topic, group_concat(Value) as Value
from t
group by Topic
于 2012-09-18T19:09:16.990 に答える