0

我有以下MYSQL:

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

我只想要 unique user_ids,但我的 sql 结果中出现重复。对此 sql 进行的正确修改是什么,以便不重复user_ids

4

2 回答 2

1

如果您不关心每个用户的类型、链接或添加文本,您可以使用 min/max 和 group by。

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

eded group by shoudl 只能在 user_ID 上

于 2013-01-18T22:20:33.363 回答
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;
于 2013-01-18T22:18:04.413 回答