[英]Prevent getting a duppicate data from the database in CodeIgniter
我正在嘗試從數據庫中按某些類別過濾數據
這是我在CodeIgniter中的代碼
$this->db
->select('*')
->from($this->table)
->join('sites','sites.id = categories_by_site.site_id')
->where('categories_by_site.category_id', $categories[0])
->or_where('categories_by_site.category_id', $categories[1])
->order_by('id', 'ASC')
->get()
->result();
為了這個問題,我簡化了代碼,上面的查詢將類別作為搜索過濾器,並使用它從數據庫中獲取結果。
可以同時搜索許多類別過濾器,這就是為什么我使用or_where()
方法。
這個問題,當我得到結果數據時,它在對象數組中有重復的條目行。
任何人都可以建議如何使用上述查詢防止從數據庫中獲取重復數據?
謝謝
您可以使用eleminate重復的值distinct
或group by
我認為,當您選擇所有字段時, group by
會更好。 按category_id
分組的示例
$this->db->group_by('category_id');
您可以使用group_by
解決此問題
將您的代碼替換為
$this->db
->select('*')
->from($this->table)
->join('sites','sites.id = categories_by_site.site_id')
->where('categories_by_site.category_id', $categories[0])
->or_where('categories_by_site.category_id', $categories[1])
->order_by('id', 'ASC')
->group_by('categories_by_site.category_id')
->get()
->result();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.