[英]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.