我的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, ...
。
答案 0 :(得分:1)
我认为你想要一个由Topic键入的哈希值,其中值是对具有该主题的值的数组的引用。
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;
}
答案 1 :(得分:0)
mysql方面:
select Topic, group_concat(Value) as Value
from t
group by Topic