[英]DBIx::Class::ResultSet problems
我有以下代碼:
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 username = ? AND date >= 'DATE_SUB(CURDATE(),INTERVAL 14 DAY)'
當您希望在where子句中使用數據庫函數時,您需要使用對標量的引用 ,如下所示:
date => { '>=' => \'DATE_SUB(CURDATE(),INTERVAL 14 DAY)' },
ProTip :如果你將環境變量DBIC_TRACE
設置為1,DBIx :: Class會將它生成的查詢打印到STDERR ......這樣你就可以檢查它是否真的符合你的意願。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.