如何在codeigniter中计算group_concat

Posted

技术标签:

【中文标题】如何在codeigniter中计算group_concat【英文标题】:How to calculate group_concat in codeigniter 【发布时间】:2019-04-13 18:30:07 【问题描述】:

我想 groupconcat 产品名称..但它在我的视图页面中显示未定义的索引产品名称..我不知道我在哪里犯了错误..请帮助我 groupconcat 产品名称..

控制器代码:

$this->db->select('GROUP_CONCAT(prdtname)', false);
$this->db->from('purchaseitem');
$this->db->group_by('vno');
$query1=$this->db->get()->row_array();
$data['query1']= $query1;

我在本地主机上的 sql 中尝试了 groupconcat,它给了我预期的结果..但我不知道在转换为 codeigniter 时我在哪里做错了..请帮我解决这个问题..

【问题讨论】:

你试过这个吗? $this->db->select(GROUP_CONCAT(prdtname SEPARATOR ","), false); 您可能会遇到 CI 或 mysql 在如何构建查询方面更严格的情况。例如,如果您的数据库服务器处于严格模式,则可能是这样的情况:1. Group concat 要求它不是 select 中的唯一字段(尝试 select vno, group_contact ....)并且 2. Group by 必须是存在于 select 子句中的字段(在非严格模式下,您可以按子句中未明确显示的内容进行分组,但在严格模式下则不能) 是的先生..我知道我的错误..感谢您的回复..:) 另外,尝试给群组联系人生成的字段起一个别名...这样以后处理起来更容易。试试group_concat(prdtname) as alias,这样你就可以更轻松地使用结果了 是的先生..试过这个并得到了答案..谢谢您的回复 【参考方案1】:

控制器代码:

$this->db->select('GROUP_CONCAT(prdtname)as itemname',false);
$this->db->from('purchaseitem');
$this->db->group_by('vno');

查看页面:

<td><?=$row['itemname'];?></td>

【讨论】:

以上是关于如何在codeigniter中计算group_concat的主要内容,如果未能解决你的问题,请参考以下文章

如何在codeigniter中计算group_concat

在codeigniter中计算结果

如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和

使用 CodeIgniter 以日期格式在数据库上计算每月、每年的日期

如何在 PHP Codeigniter 中获取 40 岁以上的人员列表

我应该如何在 CodeIgniter4 中组织我的文件结构以节省内存?