问题描述
我在 PHP codeigniter 中有一个网站,我有一个搜索框,用户可以在其中搜索并从数据库中获取数据,数据使用 searhBox 中的 datalist 显示,我创建了以下用于在 codeigniter 中搜索的函数:
public function keywordsearch() {
$this->db->select('category.category_name,link.link_name,group_concat(link.keyword) as keyword');
$this->db->distinct('link.keyword');
$this->db->join('category','category.category_name=link.category');
$this->db->group_by('link.keyword');
$query = $this->db->get('link');
return $query->result();
}
我的表格如下:
我在此函数中使用的 4 列链接名、链接网址、类别和关键字。正如您在表格中看到的,某些列中有重复值我试图使用 group by 和 distinct 来隐藏重复值,但我仍然得到如下重复值:
谁能告诉我这里有什么问题,提前致谢
解决方法
您不应该在聚合结果中使用您想要的同一列进行分组。 尝试使用选定但未聚合的列名称
public function keywordsearch() {
$this->db->select('category.category_name,link.link_name,group_concat(distinct link.keyword) as keyword');
$this->db->join('category','category.category_name=link.category');
$this->db->group_by('category.category_name,link.link_name');
$query = $this->db->get('link');
return $query->result();
}