簡體   English   中英

查詢聯合刪除重復項

[英]Query Union remove duplicates

我有一個聯合查詢,如下所示。 當在標題和說明之間都找到searh查詢時,它將返回重復的記錄。 如何避免搜索結果重復記錄

    $SQL = "(SELECT * FROM {$this->blogs} WHERE LOWER(heading) LIKE '%" .strtolower($query) . "%' ) 
        UNION 
        (SELECT * FROM {$this->blogs} WHERE  LOWER(description) LIKE '%" . strtolower($query) ."%')";   
    $run = $this->db->query( $SQL );
    $this->db->last_query();

搜索

(SELECT * FROM tbl_wonderblogs WHERE LOWER(heading) LIKE '%indian army amfc%' ) UNION (SELECT * FROM tbl_wonderblogs WHERE LOWER(description) LIKE '%indian army amfc%')

除了union您還可以將兩個條件都放在一個查詢中:

SELECT * 
FROM {$this->blogs} 
WHERE (   LOWER(heading) LIKE '%" .strtolower($query) . "%' 
       OR LOWER(description) LIKE '%" . strtolower($query) ."%'
      )

如果您需要標題匹配,請添加:

ORDER BY (LOWER(heading) LIKE '%" .strtolower($query) . "%') DESC

不過,請確保您的表尚未包含重復的數據。 如果是這種情況,則需要找出原因並解決,這比在SELECT之后添加DISTINCT關鍵字更好。 從本質上講,這會從輸出中刪除重復項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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