Aşağıdaki kod tek bir sayı değeri almak için çok fazla gibi görünüyor. Düz DBI kullanarak tek bir COUNT değeri almak için önerilen daha iyi bir yol var mı?DBI ile bir veritabanından tek bir sayı değeri nasıl alabilirim?
sub get_count {
my $sth = $dbh->prepare("SELECT COUNT(*) FROM table WHERE...");
$sth->execute(@params);
my $($count) = $sth->fetchrow_array;
$sth->finish;
return $count;
}
Bu daha kısa, ancak hala iki tablom var.
sub get_count_2 {
my $ar = $dbh->selectall_arrayref("SELECT ...", undef, @params)
return $ar->[0][0];
}
Bu biraz özneldir. Bazıları, uzun örneğinizin daha okunabilir olduğunu söyleyebilir. Perl Golf oynuyor muyuz? – pavium
Kaç tane deyiminiz var? –
Kodumda bu tür çağrılarım var, bu yüzden SQL deyimini ve @params değerini alan ve sayımı döndüren bir altım var. DBI'de bunun için yerleşik bir deyim olsaydı, ekstra alt kısma ihtiyacım yok. Bence bu yaygın bir kullanım örneğidir ve böyle bir bildiri olup olmadığını merak ettim ve bunu özledim ya da DBI'da böyle bir ifade yoksa. – szabgab