我在DBIx::Class中沾沾自喜——到目前为止我很喜欢它。
我遇到的一个问题是我想查询记录,过滤掉不在特定日期范围内的记录。
我花了一段时间才弄清楚如何进行<=
匹配类型而不是相等匹配:
my $start_criteria = ">= $start_date";
my $end_criteria = "<= $end_date";
my $result = $schema->resultset('MyTable')->search(
{
'status_date' => \$start_criteria,
'status_date' => \$end_criteria,
});
明显的问题是,由于过滤器在哈希中,我正在覆盖“status_date”的值,并且只搜索status_date <= $end_date的位置。被执行的 SQL 是:
SELECT me.* from MyTable me where status_date <= '9999-12-31'
我搜索了 CPAN、Google 和 SO,但无法弄清楚如何将 2 个条件应用于同一列。我能够找到的所有文档都显示了如何过滤超过 1 列,但不是同一列上的 2 个条件。
我确定我遗漏了一些明显的东西。这里有人可以向我指出吗?