2013-01-18 100 views
0

我有以下MYSQL:SELECT DISTINCT列

SELECT DISTINCT(`user_id`), `type`, `link`, `add_text` 
FROM `activity` WHERE `id` != 0 AND `type` !=6 AND (`type` = 4 OR `type` = 5) 
ORDER BY `id` DESC LIMIT 4 

我只想獨特user_id秒,但我在我的SQL結果得到重複。什麼是正確的修改,使該SQL,以便沒有的重複user_id小號

+0

在活動中,爲USER_ID,類型的組合,鏈接和add_text是唯一的?如果是這樣,那麼你將有user_ID的複製。你想要哪種類型?你想要什麼鏈接?你想爲你想要的單個USER_ID添加什麼add_text? – xQbert

回答

0
SELECT GROUP_CONCAT(DISTINCT `user_id`) user_ids, `type`, `link`, `add_text` 
FROM `activity` 
WHERE `id` != 0 AND `type` IN (4,5) 
GROUP BY `type`, `link`, `add_text` DESC LIMIT 4; 
+0

我得到BLOB for user_id – Jake

1

如果你不關心類型,鏈接或您可以通過使用min/max和組的每個用戶添加文本。

SELECT user_id, max(type), max(link), max(add_text) 
FROM activity 
WHERE id != 0 A 
AND type in (4,5) 
Group by User_Id 
ORDER BY id DESC LIMIT 4 

如果你關心你可以GROUP_CONCAT類型,鏈接,添加文本

SELECT user_id, Group_Concat(type), Group_Concat(link), Group_Concat(add_text) 
FROM activity 
WHERE id != 0 A 
AND type in (4,5) 
Group by User_Id 
ORDER BY id DESC LIMIT 4 

通過shoudl edied組只能是USER_ID

+0

我得到一個BLOB的類型,並有重複的user_ids – Jake