Ich bekomme meine Füße nass in DBIx::Class — liebe es so weit.Wie kann ich ein Perl-DBIx-Recordset mit 2 Bedingungen in derselben Spalte filtern?
Ein Problem, das ich renne, ist, dass ich Datensätze abfragen und Datensätze ausfiltern möchte, die sich nicht in einem bestimmten Datumsbereich befinden.
Es dauerte eine Weile, um herauszufinden, wie eine <=
Art von Spiel zu tun, statt einer Gleichheit Spiel:
my $start_criteria = ">= $start_date";
my $end_criteria = "<= $end_date";
my $result = $schema->resultset('MyTable')->search(
{
'status_date' => \$start_criteria,
'status_date' => \$end_criteria,
});
Das offensichtliche Problem dabei ist, dass, da die Filter in einem Hash sind, ist mir überschreibt den Wert für "status_date" und sucht nur dort, wo das status_datum < = $ end_date ist. Die SQL, die ausgeführt wird ist:
SELECT me.* from MyTable me where status_date <= '9999-12-31'
ich CPAN gesucht haben, Google und SO und nicht in der Lage, herauszufinden, wie zwei Bedingungen auf die gleiche Spalte anzuwenden. Die gesamte Dokumentation, die ich gefunden habe, zeigt, wie nach mehr als einer Spalte, aber nicht nach zwei Bedingungen in derselben Spalte gefiltert werden kann.
Ich bin sicher, ich vermisse etwas offensichtlich. Kann hier jemand auf mich hinweisen?
Perfect! Genau das habe ich gebraucht! Wenn nur das besser dokumentiert wäre ... Vielen Dank, friedo, ich schätze es! – BrianH