即使在 php sql 函数中添加 distinct 和 group by 之后也会出现重复值

duplicate values coming even after adding distinct and group by in php sql function

我在 php codeigniter 中有一个网站,我有一个搜索框,用户可以在其中搜索并从数据库中获取数据,数据在搜索框中使用数据列表显示,我在 codeigniiter 中创建了以下搜索功能:

 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();
     }

我的table如下:

我在此函数中使用的 4 列链接名称、链接网址、类别和关键字。如您所见 table,某些列中有重复值 我尝试使用 group by 和 distinct 隐藏重复值,但我仍然得到如下重复值:

任何人都可以告诉我这里可能出了什么问题,在此先感谢

您不应在聚合结果中按您想要的同一列使用 for group。 尝试使用选定但未聚合的列名称

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();
 }