我有这个查询:
$query->select('if(bud.posa=2,1,0) AS proprietaire,if(bud.du=1 and bud.gog=1,1,0) as pa')->from('bud');
如果我执行它会给出合成器错误;我尝试回显正在生成的sql,我发现它没有被生成(引用问题)很好,这是生成的:
select if(bud.posa=2, `1`, `0)` AS `proprietaire`, if(bud.du=1 and bud.gog=1, `1`, `0)` AS `pa` FROM `bud`
0)
是什么导致了错误,我不知道如何解决,有什么解决方案吗?
像这样重写查询:
$query->select([
'proprietaire' => 'if(bud.posa=2,1,0)',
'pa' => 'if(bud.posa=2,1,0)',
]);
http://www.yiiframework.com/doc-2.0/yii-db-query.html#select()-detail
试试看:
use yiidbExpression;
.......
.......
$expresion = new Expresion('if(bud.posa=2,1,0) AS proprietaire,if(bud.du=1 and bud.gog=1,1,0) as pa');
$query->select($expresion)->from('bud');