用mysql写一个分组查询,根据user_id分组,user_id不同的最多只展示两条数据
时间: 2024-05-01 09:23:51 浏览: 54
可以使用MySQL中的子查询结合LIMIT关键字来实现:
```
SELECT t1.*
FROM table_name t1
WHERE (SELECT COUNT(*) FROM table_name t2 WHERE t1.user_id = t2.user_id AND t1.id < t2.id) < 2
ORDER BY t1.user_id, t1.id;
```
这里的子查询 `(SELECT COUNT(*) FROM table_name t2 WHERE t1.user_id = t2.user_id AND t1.id < t2.id)` 用来查找当前行之前同一用户的记录个数,如果小于2则保留该记录。`ORDER BY` 语句用来按照 `user_id` 和 `id` 来排序结果。
阅读全文