mysql - 选择不同的列

标签 mysql sql

我有以下 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 结果中出现重复。对此 sql 进行的正确修改是什么,以便不重复 user_ids

最佳答案

如果您不关心每个用户的类型、链接或添加文本,您可以使用最小/最大和分组依据。

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

如果您确实关心,可以对类型进行分组连接、链接并添加文本

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 上

关于mysql - 选择不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408538/

相关文章:

mysql - 触发器创建不起作用

mysql - 插入相同的数字,结果不同

Mysql统计行数和行数为null

如果为空,MySQL 从不同的表中检索

mysql - SQL 查询以计算恰好有 91 个重复项的 ID

sql - 秀天享受sql

mysql - SQL 在 SUM() 上使用 FORMAT()

sql - MySQL:查找重复用户,其中项目计数< 1

sql - "select where not exists"查询中的语法错误

MYSQL:如何在单个查询中获取最大日期和第二最大日期