1

我的 SQL 数据库有三列;Key, Topic, 和Value. 存在具有不同值的重复主题。这是一个示例:

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

使用 Perl,我如何从列Topic( %Topic) 创建一个散列,该列使用每个唯一键Topic作为数组,其元素具有相应的值:@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 回答