gpt4 book ai didi

MySQL - Perl- Order by - 如何显示 ABS(PartNum) DESC 但是,三个不同的 (PartNum) 类别?

转载 作者:行者123 更新时间:2023-11-29 14:54:22 26 4
gpt4 key购买 nike

抱歉我的语法不准确。这是新的。

我需要在三个不同的组中选择零件号。

每组的数量不同。

每个组单独排序 ABS 描述。

my $fromrow = CGI::param('from');## vague but put here to show a sort of pagination  ## 
my $nextrow = CGI::param('next');
my $grabpartnumbers = $hookup->prepare(qq{
SELECT `New`,`Used`,`NOS`,`PartNum`,`Description`,`Price`
FROM `Partstable`
WHERE `instock` = ? AND `QTY` > ? AND `New` = ?
ORDER BY ABS(PartNum) LIMIT ?,?});
$grabpartnumbers->execute('1','10','1',$fromrow,$nextrow);
while(@row = $grabpartnumbers->fetchrow_array()) {
#do stuff

工作正常,对于一个“列”,例如"new"。但是,我想显示如下:

新库存4 个结果

一氧化氮合 enzyme 6 个结果

二手库存10 个结果

当三个“列”之一没有更多数据可显示时,我会出现其他问题。此时,如果该猫的 results = 0,我只想显示剩余结果或不显示任何内容(甚至不显示标题标题)。

这是可能的还是我需要准备三个不同的查询并可能将每个查询插入自己的数组中以破译在某些循环中显示的内容?

这对我来说非常先进,所以请详细说明示例。 (将其简化为我的理解水平(-;)

谢谢..

编辑:

我的 Partstable 行看起来像

   ID|PartNum|New|Used|NOS|Qty|instock|Description|Price
1|132452 |1 |0 |0 | 24|y |12ax7 yada |3.00

我想按“重要性”的顺序在同一页面上显示三个“区域”。 "new"优先。

新股 4 结果

NOS 6 结果

二手库存 10 条结果

最佳答案

您需要实现的目标有点难以准确理解,但看起来您可能可以使用完整的 SQL 解决方案(巧妙使用 GROUP BY 等) .

关于 Perl 的当前解决方案,并假设我正确理解您的示例,类似这样的内容将作为您尝试并适应实际数据集的起点。

警告:代码仅针对语法进行测试!

my $fromrow = CGI::param('from');## vague but put here to show a sort of pagination  ## 
my $nextrow = CGI::param('next');

# Columns of interest, sorted by descending order of importance
my @interesting_columns = qw(
New
Used
NOS
PartNum
Description
Price
);

my $interesting_columns_expr = join(', ', map { $_ = "`$_`" } @interesting_columns);
my $grabpartnumbers = $hookup->prepare(qq{
SELECT $interesting_columns_expr
FROM `Partstable`
WHERE `instock` = ? AND `QTY` > ?
ORDER BY ABS(PartNum) LIMIT ?,?
});
$grabpartnumbers->execute('1','10',$fromrow,$nextrow);

# Compute results
my %result_counter;
while ( my $row = $grabpartnumbers->fetchrow_hashref() ) {
foreach my $column_name ( keys %$row ) {
$result_counter{$column_name} += $row->{$column_name};
}
}

# Display results
for my $column_name ( @interesting_columns ) {
if (exists $result_counter{$column_name}) {
print join( ':', $column_name, $result_counter{$column_name} );
}
}

关于MySQL - Perl- Order by - 如何显示 ABS(PartNum) DESC 但是,三个不同的 (PartNum) 类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022638/

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