簡體   English   中英

防止從CodeIgniter的數據庫中獲取重復數據

[英]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重復的值distinctgroup 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM