SELECT me.id,me.date_created,me.date_updated,me.yes, me.name,me.description,me.currency,me。鎖定,me.skip, me.uri_part,me.user_id, 是+貨幣作爲重量別名DBIx :: Class結果集中兩列的總和
FROM我具有((重量< 5))按重量計順序的想法;
怎樣才能在DBIx ::類,查詢,而無需使用文字SQL這樣的:
my $query = $rs->search({},
{
'+select' => \[
'yes + currency as weight',
],
rows => 1,
order_by => { -desc => [qw/weight name/] },
having => {
weight => { '<' => $self->yes + $self->currency },
},
});
use Data::Dumper;
warn Dumper($query->as_query);
我嘗試使用-as,但是,它似乎只能是有益的與生成列的工作從功能,這樣的:
'+select' => {
'yes + currency', '-as' => 'weight'
}
生成錯誤
「匿名散列中的奇數元素 /data/TGC/lib/TGC/DB/Result/Idea.pm line 105,line 1000. DBIx :: Class :: SQLMaker :: _ recurse_fields():格式不正確的選擇參數 - 太多鍵在哈希:標量(0xbf14c40),重」
我更新了原始查詢以修復基本的SQL語法問題。最重要的是,我認爲我們可能運行不同版本的SQL :: Abstract或DBIx :: Class,因爲我沒有得到與您一樣的查詢(在用您的建議子句修改原始數據後): SELECT 'me'.'id','me'.'date_created','me'.'date_updated','me'.'''','me'.'name','me'.'description','me '.'currency','me'.'locked','me'.'skip','me'.'uri_part','me'.'user_id',('me'.'yes + me'.''貨幣')作爲'重量'從'想法''我'有'重量'<? ORDER BY'weight' DESC,'name' DESC LIMIT?) – perlDreamer
您是否在談論引用?那是因爲你已經實施了「DBI驅動程序」。我所說的** HAVING **是**在每個**數據庫後端都不會被**支持。所以即使它產生了,如果你切換數據庫,這可能會炸燬**。 –
@perlDreamer忘記在評論上標記你 –