如何在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中使用mysql substring_index计算JSON格式数据的总和
使用 CodeIgniter 以日期格式在数据库上计算每月、每年的日期