gpt4 book ai didi

mysql - 使用 Perl+MySQL(DBI) 仅获取列名称和该列中的项目数

转载 作者:行者123 更新时间:2023-11-29 12:43:08 24 4
gpt4 key购买 nike

我正在使用 LAMP(Linux、Apache、MySQL、Perl)。使用 CPAN 的 DBI 模块。

我试图同时获取 COLUMN_NAME 和 COUNT,并将它们存储到 Perl 哈希中。

这样我就可以用 HTML 打印这样的内容:

Album: Selfies; #Column_Name
Photos: 0; #Count

为此,我认为我需要一个 for/foreach 循环来打印哈希的键和相应的值,一次一组。正如你所看到的,我掌握了基础知识......甚至成功编写了 2 个单独的 SQL 语句,但我正在寻找一种更有效的方法。另外,还有一些问题:

A.第一个 Column_Name/Count 集显示为空,但其余部分都很好。像这样的东西。

Album: 
Photos:

Album: First
Photos: 2

B.如果计数为 0,它会再次返回空行,类似于:

Album: First_album
Photos:

C.为了解决这两个问题,我尝试 grep/^$/.. 但结果是这样的:

Album: 1
Photos: 1

暂时陷入困境。我的问题是:

如果存在组合 SQL 语句来获取 COLUMN_NAME AND COUNT。我知道如何准备单独的陈述,但我希望有一种方法可以将其简化为一个陈述。

第二个问题,我认为我做错的部分是提取 COLUMN_NAME

$rv = $sth->fetchrow_array; #I think this is the wrong way maybe. 

我通过查看 DBI 文档尝试了其他方法,但到目前为止,还没有弄清楚如何克服上面的前两个问题。

<小时/>

MySQL数据库的示例结构:

数据库:测试表:第一个表

栏目:自拍、全景图Selfies 包含 3 个值,Panaroma 包含 5 个值。

我想使用 DBI/Perl 提取此信息并按以下方式呈现:

Album: Selfies
Photos: 3

Album: Panaroma
Photos: 5

Sql语句

SELECT COUNT(column_name) FROM table_name;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table_name'

最佳答案

如果我明白你在做什么,这就是查询:

SELECT "Selfies" AS Album, COUNT(DISTINCT Selfies) AS Photos
FROM table_name
UNION
SELECT "Panorama" AS Album, COUNT(DISTINCT Panorama) AS Photos
FROM table_name

获取结果并循环输出。

关于mysql - 使用 Perl+MySQL(DBI) 仅获取列名称和该列中的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com