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

一意user_idの のみが必要ですが、SQL の結果で繰り返しが発生しています。user_idsの繰り返しがないように、この SQL に行う正しい変更は何ですか?

4

2 に答える 2

1

タイプ、リンク、または各ユーザーのテキストを追加することを気にしない場合は、最小/最大およびグループ化を使用できます。

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

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 に答える