gpt4 book ai didi

perl - DBIx::Class::ResultSet 问题

转载 作者:行者123 更新时间:2023-12-04 16:49:24 24 4
gpt4 key购买 nike

我有以下代码:

package MyPackage::ResultSet::Case;
use base 'DBIx::Class::ResultSet';

sub cases_last_fourteen_days {
my ($self, $username) = @_;

return $self->search({
username => $username,
date => { '>=' => 'DATE_SUB(CURDATE(),INTERVAL 14 DAY)' },
});
};

但是当我尝试以这种方式使用它时:
$schema->resultset('Case')->cases_last_fourteen_days($username)

我总是得到零结果,谁能告诉我做错了什么?

谢谢!

最佳答案

您使用 SQL::Abstract 条件的方式将导致以下 where 条件:

WHERE username = ? AND date >= 'DATE_SUB(CURDATE(),INTERVAL 14 DAY)'

当您希望在 where 子句中使用数据库函数时,您需要使用 a reference to a scalar , 像这样:
date        => { '>=' => \'DATE_SUB(CURDATE(),INTERVAL 14 DAY)' },

专业提示 : 如果你设置了环境变量 DBIC_TRACE到 1,DBIx::Class 会将它生成的查询打印到 STDERR ......这样你就可以检查它是否真的按照你的意愿行事。

关于perl - DBIx::Class::ResultSet 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280375/

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