【问题标题】:duplicate values coming even after adding distinct and group by in php sql function即使在 php sql 函数中添加 distinct 和 group by 后也会出现重复值
【发布时间】:2021-04-03 21:17:23
【问题描述】:

我在 php codeigniter 中有一个网站,我有一个搜索框,用户可以在其中搜索并从数据库中获取数据,数据使用 searhbox 中的 datalist 显示,我在 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();
     }

我的桌子在下面:

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

谁能告诉我这里有什么问题,提前谢谢

【问题讨论】:

    标签: php sql codeigniter duplicates datalist


    【解决方案1】:

    您不应该在聚合结果中使用您想要的同一列分组。 尝试使用已选择但未聚合的列名称

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

    【讨论】:

    • 让我检查一下兄弟
    • 检查得更好..并删除不同的子句..也..回答更新..
    • 兄弟,我希望我的关键字列分组,因为关键字列中有很多重复值
    • 如果您想避免聚合结果的重复结果,您的评论没有意义..您必须避免聚合中列的分组..如果您在聚合的列中有重复值,那么使用 group_concat(distinct ...) .. 答案已更新 ..
    • 兄弟我试过你的代码,它仍然显示重复
    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多