mysql - 了解 Selectall_hashref 并获取/打印多于 1 列

标签 mysql perl

我有一个 PERL 脚本,它连接到 MySQL 数据库,并从受以下形式的设定条件限制的表中选择所有数据:

my $hash_ref = $dbh->selectall_hashref($sql, 'Key');

当我稍后遵从并打印我的哈希值时,我只打印我的 Key 列:

print "$_\n" for (sort(keys %$hash_ref));

我需要做什么才能打印 SQL 表的其他列(我选择的列)?我需要分配更多键吗?我从根本上不明白哈希是如何工作的吗?

如果有区别,第一个 $hash_ref 来自一个函数,然后返回到主脚本,并重新输入到打印它的第二个函数中。

编辑:更正代码

最佳答案

如果您打印keys %$hash_ref,当然您只会看到键!

您可以打印整个哈希,例如:

print "$_ -> $hash_ref->{$_}\n" for (sort(keys %$hash_ref));

如果您的散列是散列的散列,正如您的评论中所建议的,您可以打印 col1 键,如下所示:

print "$_ -> $hash_ref->{$_}->{col1}\n" for (sort(keys %$hash_ref));

要打印任何变量的调试转储,您可能会发现 Data::Dumper 很方便:

use Data::Dumper;
print Dumper($hash_ref);

关于mysql - 了解 Selectall_hashref 并获取/打印多于 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16579986/

相关文章:

perl - 排序与线性搜索寻找最小值/最大值

json - 祝福对象转换为 JSON

python - Collectd - Perl/Python 插件 - 注册功能不起作用

php - 如何使用纪元时间查看有多少用户在线?

php - json 或序列化推特数据

php - 当 Code Igniter 中没有更新时,如何测试我的 MySQL 更新查询是否成功?

c++ - 我应该使用 Perl 的哪些动态编程特性?

perl - WWW::Mechanize : 如何上传不同文件名的文件?

php - 仅选择 min(date) 时 SQL 返回各种日期

mysql - 使用变量表名连接表