我已经实现了 mysql 查询并且工作正常,但是在 Yii2 中转换/实现它时,我在使用 active record 时遇到了一些困难。SELECT COUNT(price) AS total,SUM(IF(is_veg = 'Y', 1, 0)) AS veg_count,SUM(IF(is_not_veg = 'Y', 1, 0)) AS non_veg_countFROM order_table我试过做以下orderTable::find() ->select('count(price) as total') ->sum(new Expression("IF(is_veg = 'Y', 1, 0)") => 'veg_count') ->sum(new Expression("IF(is_not_veg = 'Y', 1, 0)") => 'non_veg_count');我收到以下错误:语法错误,意外的 '=>' (T_DOUBLE_ARROW),期待 ',' 或 ')'
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
您可以尝试使用数组中的列使用简单的选择
(并注意正确的引号序列)
orderTable::find()
->select(['count(price) as total',
"SUM(IF(is_veg = 'Y', 1, 0)) AS veg_count",
"SUM(IF(is_not_veg = 'Y', 1, 0)) AS non_veg_count"])
但请确保您拥有列别名的相应公共变量,否则您的结果模型不包含结果
在您的 OrderTable 模型中,您需要
class OrderTable extends \yii\db\ActiveRecord
{
public $veg_count;
public $non_veg_count;
...
- 1 回答
- 0 关注
- 164 浏览
添加回答
举报
0/150
提交
取消