yii2在组concat的单个查询中显示多个值不工作?

yii2在组concat的单个查询中显示多个值不工作?,yii,yii2,Yii,Yii2,我在subject表中有记录列表,然后我想添加到yii2绑定方法的group_concat中 Table Structure =============== id, sname 1 english 2 maths $datas = Subjects::find()->select("Group_concat(sname)")->where('FIND_IN_SET(id,"1,2")')->one();

我在subject表中有记录列表,然后我想添加到yii2绑定方法的group_concat中

Table Structure
===============
id, sname
1   english
2   maths


$datas = Subjects::find()->select("Group_concat(sname)")->where('FIND_IN_SET(id,"1,2")')->one();                                 
return $datas->sname;

但是我只需要得到一个值。我想要的结果是“英语,数学”,但我的结果只有“英语”?

您应该使用别名为结果指定名称。。我的朋友

$datas = Subjects::find()->select("Group_concat(sname) as g_sname")
        ->where('FIND_IN_SET(id,"1,2")')
        ->one();                                 
return $datas->g_sname;
您还可以尝试使用column()


您应该使用alias为结果指定一个名称。。我的朋友

$datas = Subjects::find()->select("Group_concat(sname) as g_sname")
        ->where('FIND_IN_SET(id,"1,2")')
        ->one();                                 
return $datas->g_sname;
您还可以尝试使用column()


上面的编码非常正确。但是,i g_sname不在模型中,我得到了一些错误。所以我在public变量中声明。如果您需要一个计算列,您应该在模型的开头添加一个public变量,例如:public gSname;我已经用一些建议更新了答案。。希望都有用,上面的编码已经非常正确了。但是,i g_sname不在模型中,我得到了一些错误。所以我在public变量中声明。如果您需要一个计算列,您应该在模型的开头添加一个public变量,例如:public gSname;我已经用一些建议更新了答案。。希望是有用的